2 aixuexidewan aixuexidewan 于 2014.10.10 15:05 提问

用VC编程总是显示内存不能写?可是编程是对的啊。

具体编程如下:#include
#include
struct student
{
long num;
float score;
struct student *next;
};
int n=0;
struct student *creat(struct student *head)
{
struct student *p1,*p2;
p1=p2=( struct student *)malloc(sizeof( struct student));
head=NULL;
scanf("%ld,%f",p1->num,p1->score);
while(p1->num!=0)
{
n+=1;
if(n==1) head=p1;
else p2->next=p1;
p2=p1;
p1=( struct student *)malloc(sizeof( struct student));
scanf("%ld,%f",p1->num,p1->score);
}
p2->next=NULL;
return(head);
}
void print_string(struct student *head)
{
struct student *temp;
temp=head;
if(head!=NULL)
do
{ printf("%ld,%5.1f",temp->num,temp->score);
temp=temp->next;
}while(temp!=NULL);
}
void main()
{
struct student *head;
head=NULL;
head=creat(head);
print_string(head);
}
测试总是显示:内存不能写。

1个回答

likely_zhao
likely_zhao   2014.10.12 08:29

传进去的head指针进出之后又不会变的,要改变head 指针,要传一个指针的引用才行吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!