質問があります...コードの次の部分があるとしましょう:
int *a,*a1,*a2;
for (i=1; i<=2; i++) {
a=malloc(sizeof(int));
if (i==1) a1=a;
else if (i==2) a2=a;
}
*a1=5;
*a2=4;
だから私の質問は、printfを使用してa1とa2を出力すると、変数a1の値は5になり、a2の値は4になりますか?したがって、malloc を使用してメモリを割り当て、そのメモリ空間内のポイントを割り当て、再度 malloc を使用してメモリを割り当てると、メモリの別の部分へのポイントが存在しますが、メモリの最初の部分はまだ存在しますか? または、もう一度 malloc を使用すると、メモリの最初の部分が消去され、メモリの新しい部分が書き込まれます