一部のポインタの仕組みが理解できません。私はいつも、ポインタ変数 (p) を作成したとき、その領域を malloc する (p = malloc(x)) か、または別の変数のアドレス (p = &a)
ただし、このコードでは、最初の割り当ては一貫して機能しますが、最後の割り当てはセグメンテーション違反を引き起こします。
typedef struct
{
int value;
} test_struct;
int main(void)
{
//This works
int* colin;
*colin = 5;
//This never works
test_struct* carter;
carter->value = 5;
}
colin が予備のメモリを指していないのに、最初のものはなぜ機能するのですか? そして、なぜ2番目は機能しないのですか?
これもCで書いていますが、C++の知識がある人なら答えられるはずです。
編集:わかりました、最初のものも機能しないはずですが、なぜ機能しますか. それが私が求めているものです。