大伙帮忙看看创建和遍历链表的程序哪错了
#include <stdio.h>#include <malloc.h>
#include <stdlib.h>
typedef struct Node
{
int data; // 数据域
struct Node * pNext; // 指针域
}NODE, *PNODE; // NODE等价于struct Node,PNODE等价于struct Node *
PNODE create_list(void);
void traverse_list(PNODE pHead);
int main(void)
{
PNODE pHead = NULL; // 等价于struct Node pHead = NULL;
pHead = create_list(); // creast_list函数的功能:创建一个非循环单链表,并将头结点的地址赋给pHead
traverse_list(pHead);
return 0;
}
PNODE create_list(void)
{
int i;
int len; // 用来存放有效节点的个数
int val; // 用来临时存放用户输入的节点的值
// 分配了一个不存放有效数据的头结点
PNODE pHead = (PNODE)malloc(sizeof(NODE));
if (NULL == pHead)
{
printf("内存分配失败,程序终止!\n");
exit(-1);
}
PNODE pTail = pHead;
pHead->pNext = NULL;
printf("请输入你所要生成的节点的个数:len = ");
scanf("%d", &len);
for (i = 0; i < len; ++i)
{
printf("请输入第%d的节点的值:", i+1);
scanf("%d", &val);
PNODE pNew = (PNODE)malloc(sizeof(NODE));
if (NULL == pNew)
{
printf("内存分配失败,程序终止!\n");
exit(-1);
}
pNew->data = val;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
}
return pHead;
} // end function PNODE creast_list
void traverse_list(PNODE pHead)
{
PNODE p = pHead->pNext;
while (NULL != p)
{
printf("%d ", p->data);
p = p->pNext;
}
printf("\n");
return; // 表示函数已结束
}
求助啊,老是看不出哪错了 高手速来啊 肿么每次问数据结构的问题都没几个人鸟我捏。。。 高手们快快出现吧 跪求大神指点。。 :shock:为毛还没人 {:2_36:}人呢。。。。。。。 高手在何方。。。 感觉在自言自语。。。 yuqiuwangzi 发表于 2013-10-28 11:21 static/image/common/back.gif
求助啊,老是看不出哪错了
没有错啊 我在程序上试过,,正常显示啊 你要找什么错误尼,,,我试过是正常的啊 提示输入len=然后我输入10 在输入了10个数后就自动显示出来了啊 ,,没明白你要找什么错误 ypyangpong 发表于 2013-10-28 18:16 static/image/common/back.gif
你要找什么错误尼,,,我试过是正常的啊 提示输入len=然后我输入10 在输入了10个数后就自动显示出来 ...
我用VC++6.0报错。。。
Compiling...
list.c
F:\羽毛球\list.c(37) : error C2275: 'PNODE' : illegal use of this type as an expression
F:\羽毛球\list.c(9) : see declaration of 'PNODE'
F:\羽毛球\list.c(37) : error C2146: syntax error : missing ';' before identifier 'pTail'
F:\羽毛球\list.c(37) : error C2065: 'pTail' : undeclared identifier
F:\羽毛球\list.c(37) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct Node *'
F:\羽毛球\list.c(48) : error C2275: 'PNODE' : illegal use of this type as an expression
F:\羽毛球\list.c(9) : see declaration of 'PNODE'
F:\羽毛球\list.c(48) : error C2146: syntax error : missing ';' before identifier 'pNew'
F:\羽毛球\list.c(48) : error C2065: 'pNew' : undeclared identifier
F:\羽毛球\list.c(48) : warning C4047: '=' : 'int ' differs in levels of indirection from 'struct Node *'
F:\羽毛球\list.c(50) : warning C4047: '==' : 'void *' differs in levels of indirection from 'int '
F:\羽毛球\list.c(55) : error C2223: left of '->data' must point to struct/union
F:\羽毛球\list.c(56) : error C2223: left of '->pNext' must point to struct/union
F:\羽毛球\list.c(57) : error C2223: left of '->pNext' must point to struct/union
执行 cl.exe 时出错.
list.obj - 1 error(s), 0 warning(s) yuqiuwangzi 发表于 2013-10-28 19:35 static/image/common/back.gif
我用VC++6.0报错。。。
Compiling...
list.c
程序没有错。。。我都运行成功了,,,应该是你VC6.0有问题吧,,我用的vs2005 ypyangpong 发表于 2013-10-28 21:26 static/image/common/back.gif
程序没有错。。。我都运行成功了,,,应该是你VC6.0有问题吧,,我用的vs2005
刚换了另一个编译器还是出错。。。我再去调查调查 yuqiuwangzi 发表于 2013-10-29 00:36 static/image/common/back.gif
刚换了另一个编译器还是出错。。。我再去调查调查
你编译运行的时候把BUDUG换成RELEASE版的看看行不行 ypyangpong 发表于 2013-10-29 11:36 static/image/common/back.gif
你编译运行的时候把BUDUG换成RELEASE版的看看行不行
还是一样会出错,无语了 yuqiuwangzi 发表于 2013-10-29 13:16 static/image/common/back.gif
还是一样会出错,无语了
那就不要纠结了,,,你程序代码没有错,,,编译器有问题 ypyangpong 发表于 2013-10-29 15:29 static/image/common/back.gif
那就不要纠结了,,,你程序代码没有错,,,编译器有问题
估计是上次卸VS2010不小心把某些系统组件误删了。。。
页:
[1]