指针和结构体

来源:百度知道 编辑:UC知道 时间:2024/09/25 14:25:05
#include "stdio.h"
#include "conio.h"
struct studen
{
char *name;
}stu[3];
main()
{
int i,j;
for(i=0;i<3;i++)
scanf("%s",stu[i].name);
for(i=0;i<3;i++)
printf("%s\t",stu[i].name);
getch();
}
/*指针*name的值为什么会指向NULL ?*/

#include <stdio.h>/////////////不要显得咱们很业余,系统头文件用尖括号
#include <malloc.h>////malloc函数在这里
#include <conio.h>

struct studen
{
char *name;
}stu[3];

main()
{
int i;
for(i=0;i<3;i++)
{
stu[i].name = (char*)malloc( 20 * sizeof(char));//////////为每个指针分配20个字符的空间
scanf("%s",stu[i].name);
}

for(i=0;i<3;i++)
printf("%s\t",stu[i].name);

for(i=0;i<3;i++)//别忘了释放掉
free(stu[i].name);

getch();
}

char *name;
改为
char name [100];

只是指针的话没有分配内存,无法保存字符串。