下面的代码实在搞不懂为什么会崩溃,应该是strcpy的问题
#include <stdio.h>
#include <string.h>
typedef struct T
{
char *name;
int num;
}test;
int main()
{
test *p = (test*)malloc(sizeof(test));
strcpy(p->name,"jim");
printf("%s\n",p->name);
return 0;
}
解决方案
10
给结构分配了内存,但没给name分配空间。
10
name没有malloc空间。
20
你的结构体里只放了一个char指针和一个int变量,所以字符串没地方放,应该这样
test *p = (test*)malloc(sizeof(test)); p->name = (char*)malloc(64*sizeof(char));//64是你放的最多的字符数 strcpy(p->name,"jim");