假设我有一个结构:
typedef struct
{
int a;
struct x;
struct *x2;
char *s;
}global_struct;
我有一个指针指向的内存等于结构的大小:
ptr = calloc(sizeof(global_struct),1);
我实际上不想在堆上分配内存,因此 id 将结构的变量声明为:
global_struct var_struct1;
我正在使用 memset 将内存初始化为零。
memset(&var_struct1,0,sizeof(var_struct1))
当我这样做时,我的代码会出现分段错误。
我想知道是否有任何理由说明为什么会失败以及在什么情况下会失败?