| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7166 人关注过本帖
标题:被困扰了一个下午,求大神解答。VC6.0能编译通过,VS2013报错错误。
取消只看楼主 加入收藏
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
被困扰了一个下午,求大神解答。VC6.0能编译通过,VS2013报错错误。
是一个与链表相关的代码,输入学生总人数及,每个学生的姓名成绩,并将输入的内容显示出来。。
VC6.0能编译通过,VS2013报错error C4703: 使用了可能未初始化的本地指针变量“p1”
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
 char name[15];
 int mark;
 struct student *next;
}Node,*node;
main()
{
int num,i;
node p,p1,head;
head=(node)malloc(sizeof(Node));                        /*分配内存地址*/
if(head==NULL)                                     /*判断地址分配是否成功*/
{
printf("error");
exit(1);
}
else
head->next=NULL;
printf("please input the number of students:\n");
scanf("%d",&num);
printf("please input information:");
for(i=0;i<num;i++)
{
p=(node)malloc(sizeof(Node));
if(p==NULL)
{
printf("error");
exit(1);
}
else
{
printf("\nname:");
scanf("%s",p->name);
printf("mark:");
scanf("%d",&p->mark);
if(head->next==NULL)
{
head->next=p;                                     /*头结点的next域指向p*/
p1=p;                                         /*p1指向p*/
}
else
{
p1->next=p;                                     /*将p链到链表中*/
p1=p;
}
}
}
p1->next=NULL;                                 /*将链表中最后一个结点的指针域置空*/
p=head->next;
printf("the list:\n");
while(p!=NULL)
{
printf("name:%s",p->name);
printf(" mark:%d\n",p->mark);
p=p->next;
}
}
搜索更多相关主题的帖子: include 姓名 
2015-04-02 21:09
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
收藏
得分:0 
if(head->next==NULL)
{
head->next=p;                                     /*头结点的next域指向p*/
p1=p;                                         /*p1指向p*/
}
else
{
p1->next=p;                                     /*将p链到链表中*/
p1=p;
}
报错的是是else里p1->next=p里的这个p1,说这个指针未初始化,这不可能,根据前面的代码,主函数前面有head->next=NULL,那这个循环第一次执行时符合if里的条件的,会对p1赋值,后面的循环才会执行else的部分,就是保证P1始终是单链表里最后一个节点的指针域。
在VC6.0里和TC2.0环境都运行成功,可是在VS2013一直错误,折磨了我一下午啊!!!!!
2015-04-02 21:16
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
收藏
得分:0 
回复 3楼 longwu9t
哥们,非常谢谢你的回答。
其实我问的是为什么这个VS2013会在那报错,比如VS2013里scanf函数无法使用,我百度可以知道原因,这里他提示有未初始化的指针,我也想知道原因,我百度不到所以来提问。
按照你的提示,我也在代码前加了#pragma warning(disable:)这个函数,再输入他报错的编号,结果就能运行了!百度了一下,这个是将某个警告置为失效的。
可是我还是好想知道报错的原因啊!   再次感谢你!
2015-04-03 08:35
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
收藏
得分:0 
回复 6楼 longwu9t
非常感谢!
2015-04-03 11:30
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
收藏
得分:0 
回复 14楼 longwu9t
你那边是提示warning,我这边是提示error。
谢谢你们的解答!
2015-04-03 11:34
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
收藏
得分:0 
回复 9楼 beyondyf
谢谢你的解答!!我的编译器提示的是error,如果用scanf之类的就提示warning。
你们的意思我明白了,再次感谢。
继续努力去~
2015-04-03 11:35
longshuai19
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:7
专家分:0
注 册:2015-4-2
收藏
得分:0 
回复 7楼 TonyDeng
谢谢建议!
2015-04-03 11:36
快速回复:被困扰了一个下午,求大神解答。VC6.0能编译通过,VS2013报错错误。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016904 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved