各位C语言前辈们,Dev-C++里面编译器的这个报错什么意思啊?~~

[复制链接]
查看11 | 回复3 | 2009-1-22 11:32:39 | 显示全部楼层 |阅读模式
小弟今年才大一,期末机考有个关于链表的问题,其中一关于插入一个元素子函数部分编译老是不过,该部分源代码如下:
/*函数功能: headPtr指向的链结点为2n个的链表中插入n个结点,插入规律:
在原来的第1、2个结点中插入1个结点,结点数据域值为前两个结点数据域之和;
在第2i-1、2i个结点中插入第i个结点, 结点数据域值为前两个结点数据域之和;
*/
void insertNodes(LISTNODEPTR headPtr)
{

LISTNODEPTR currentPtr=headPtr,previousPtr,newPtr=NULL;

if (headPtr!=NULL)//只有头指针后有结点,操作才有意义

{

//先移向第一对链节

previousPtr=currentPtr;

currentPtr=previousPtr->nextPtr;

while (currentPtr!=NULL)

{

if ( newPtr=malloc(sizeof(LISTNODE)) )//先分配内存

{

##
newPtr->nextPtr=currentPtr;//结后面

previousPtr->nextPtr=newPtr; //结前面

newPtr->data=previousPtr->data+currentPtr->data;//运算

}

else

printf ("内存不足!元素%d插入失败",currentPtr->data+previousPtr->data);

//读入下一对链节(由于前面已经保证链表节为偶数个,故这里无须判断)

previousPtr=currentPtr->nextPtr;

currentPtr=previousPtr->nextPtr;

}

}
}

然后编译器报错是第#行(见上):stray'\161'in program

什么意思哦?这段程序怎么错的?(前面程序已检查无误)
##并没有,是为了方便指出是第几行才打出来的。不过Dev-C++感觉确实不是很好用啊,但学校就用的这个,没办法。
MS加上强制转换也不行,newPtr本身就是LISTNODEPTR类型的嘛。
中文字符应该也没有,我都是输完程序才加中文注释的。

回复

使用道具 举报

千问 | 2009-1-22 11:32:39 | 显示全部楼层
Dev-C++ 没用过。。## newPtr->nextPtr=currentPtr;//结后面 这里的## 对么?...
回复

使用道具 举报

千问 | 2009-1-22 11:32:39 | 显示全部楼层
请写出完整程序以及完整的错误信息。...
回复

使用道具 举报

千问 | 2009-1-22 11:32:39 | 显示全部楼层
if ( newPtr=malloc(sizeof(LISTNODE)) )//先分配内存 把上面的那一行程序改一下,改成: if ( newPtr=(LISTNODEPTR)malloc(sizeof(LISTNODE)) )//先分配内存 因为malloc()默认的返回值类型为 void *补充:应该是指针类型问题你把整个程序给出...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行