永发信息网

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

答案:4  悬赏:30  手机版
解决时间 2021-04-06 15:07
  • 提问者网友:半生酒醒
  • 2021-04-05 21:19
小弟今年才大一,期末机考有个关于链表的问题,其中一关于插入一个元素子函数部分编译老是不过,该部分源代码如下:


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类型的嘛。

中文字符应该也没有,我都是输完程序才加中文注释的。
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2019-07-10 09:52
if ( newPtr=malloc(sizeof(LISTNODE)) )//先分配内存
把上面的那一行程序改一下,改成:
if ( newPtr=(LISTNODEPTR)malloc(sizeof(LISTNODE)) )//先分配内存
因为malloc()默认的返回值类型为 void *

补充:应该是指针类型问题
你把整个程序给出来,要不不好调试程序。
我的Q:821734383 把整个程序发到这个Q的邮箱里。
全部回答
  • 1楼网友:渊鱼
  • 2020-08-11 18:26
请写出完整程序以及完整的错误信息。
  • 2楼网友:夜余生
  • 2020-01-04 07:38
你仔细检查一下,可能有中文字符
  • 3楼网友:风格不统一
  • 2020-09-30 14:55
Dev-C++ 没用过。。 ## newPtr->nextPtr=currentPtr;//结后面 这里的## 对么?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯