vc++ 结构体 指针

来源:百度知道 编辑:UC知道 时间:2024/06/20 14:11:28
#include<iostream>
using namespace std;
struct data
{
int score;
struct data *next;

};
int main()
{
data head;
data *p=&head;
do
{

cout<<"输入一个正整数(输入0停止):";
cin>>p->score;
p=p->next;
}
return 0;
}

#include<iostream>
using namespace std;
struct data
{
int score;
struct data *next;

};
int main()
{
data head,*p1;
data *p=&head;
do
{

cout<<"输入一个正整数(输入0停止):";
cin>>p->score;
p=p->next;
}
while(p->score!=0);
p->next=null;
p1=&head;
do
{
cout<<p->score<<' ';
p1=p1->next;
}
while(p1->next!=null);

return 0;
}
第一个编译能通过,但输入数字按回车就错了,第二个怎么改,菜鸟求助大侠帮忙
那个我改了下,现在变成下面的,但没有输出
#inc

一定是报内存访问错误

看这句 p=p->next;
我想问你下,你知道这个p->next的值是多少吗?VC中它是0xcccccccc,你一用这个地址就报错。
你得先把这个next在内存中声明一个内存空间才能使用。

编译通过是没有语法错误 不代表没有逻辑错误 第一个p=p->next是一个错误的逻辑 没有为p的下一个结点申请内存空间 程序会终止的
第二个程序也有没有申请内存空间的错误 还有判断p里的得分是否为零应该用if 你那个根本就不是个循环 之后循环里输出所有值应该是p1的得分