次のCコードを検討してください-
typedef struct node
{
int data;
}node;
int main()
{
node *temp;
temp->data=100;
printf("%d",temp->data);
return 0;
}
(私が思うに)メモリを割り当てていないためSegmentation fault
、オンラインで表示されます。temp->data=100;
ですから、などはありませんtemp->data
。
しかし、私が試してみると -
int main()
{
node *temp,*n;
n=(node*)malloc(sizeof(node));
n->data=100;
temp->data=n->data;
printf("%d",temp->data);
retrun 0;
}
適切な出力100が得られます。ポイントするメモリを割り当てていませんtemp
。しかし、まだコピーn->data
していtemp->data
ます。どのように ??