次の C コードを検討してください。
#include <stdio.h>
#include <stdlib.h>
int main() {
int arrSize;
scanf("%d", &arrSize);
printf("%d\n",arrSize);
int *dynArr = (int *)malloc(sizeof(int)*arrSize);
int arr1[arrSize];
return 0;
}
上記のコードでは、arrSizeはユーザー入力から取得した配列のサイズです。次の観察が正しいかどうかを知りたいです。
dynArrは、実行時にヒープでメモリに割り当てられる動的配列です。dynArr のサイズは、realloc関数を使用して変更できます。
arr1も実行時にメモリに割り当てられますが、動的ではなく (つまり、サイズを変更できません)、Stackに割り当てられます。