【发布时间】:2013-11-24 01:41:56
【问题描述】:
我不明白一些简单的事情。
我有这个示例代码:
typedef struct {
char* fname;
} PersonType;
int main() {
PersonType *p;
p = (PersonType *)malloc(sizeof(PersonType));
char * name = "Robert";
/* this next line causes a segmentation fault */
strcpy(p->fname, name);
printf("name: %s\n", p->fname);
}
为什么“strcpy”会出现分段错误?我究竟做错了什么?
非常感谢任何帮助,谢谢!
罗伯
【问题讨论】:
-
需要为fname分配空间;你的 malloc 只为指针本身分配空间。
-
您还需要为 fname 分配内存。单独为 PersonType 分配内存是不够的。
标签: c pointers segmentation-fault malloc strcpy