很简单的程序,我调了好久不知道错误在哪里艾。。。大家帮下
- C/C++ code
#include<stdio.h>typedef struct student///////链串{ char *a; struct student *next;}stu1;withstring(stu1 *s1,char *s2)/////////////////////链串的赋值{ stu1 *p,*q; char *c; int i=0,j=0,t; p=s1; c=s2; t=strlen(s2); for(;j<t;i++,j++){ p->a[i]=s2[j]; if(i==4){ q=(stu1*)malloc(sizeof(stu1)); p->next=q; p=q; i=0;}}p->next=NULL;p->a[i]='\0';}print(stu1 *s){ while(s!=NULL){ puts(s->a); s=s->next;}}main(){ char a[100]; stu1 *b; b=(stu1 *)malloc(sizeof(stu1)); gets(a); withstring(b,a);print(b);}
大侠们可以指出我错误的同时,希望把程序也条下啊谢谢了
[解决办法]
b=(stu1 *)malloc(sizeof(stu1));
没有给stu1->a分配内存
[解决办法]
同意2楼的
你定义结构体是char *a;
sizeof(stu1) = "两个指针的空间"
不是你那个a[100]的空间