考虑以下 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是一个动态数组,它在运行时在堆上分配到内存中。可以使用realloc函数修改 dynArr 的大小。
arr1在运行时也在内存中分配,但不是动态的(即它们的大小不能修改),它是在Stack上分配的。