構造があるとします:
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))
これを行うと、コードでセグメンテーション違反が発生します。
なぜこれが失敗するのか、どのようなシナリオで失敗するのか、何らかの理由があるかどうかを知りたいですか?