【发布时间】:2014-11-01 11:23:54
【问题描述】:
我想在 char 数组中存储一个字符串,我试图通过使用 memcpy() 来做到这一点,但我得到了一个 segmentation fault。有人可以解释为什么吗?以及这样做的正确方法是什么。
使用char * name; 或char name[100]; 哪个更好?
#include <stdio.h>
struct A
{
char * name;
};
typedef struct A A ;
int main()
{
A *a;
memcpy(a->name,"hello",sizeof(A));
printf("The value of name is %s",a->name);
return 0;
}
【问题讨论】:
-
试试 printf(sizeof(A))
-
你没有为
a分配任何内存指向。这同样适用于a->name。您需要为两者分配内存。 -
你的指针
a和a->name都没有指向合理的地方。 -
你可能会喜欢comp.lang.c FAQ,尤其是第6节。
标签: c segmentation-fault memcpy