我正在处理一项任务(另一个问题中的详细信息)。作为其中的一部分,我正在增加数组的大小。并发现当我尝试初始化一个数组时:
int arr[2097152]; // 8MB
我遇到了分段错误...我认为是因为我试图声明一个太大的数组?然后我发现解决这个问题的方法是使用malloc
. 但是对 C 来说是新手(主要使用 JavaScript/Python/Java ...)。我对指针和东西感到非常困惑......
我已经声明了一个 8MB 的数组:
int *arr = malloc (MBs * 1024 * 1024 / sizeof(int)); // MBs = 8
但是现在......我如何访问它或写入它?当我使用它arr
时,我是否获得了地址,如果我使用它,*arr
我会获得第一个元素?