c - 什么时候在将数组声明为指向数组的指针时分配内存

标签 c declaration multidimensional-array dynamic-allocation

在尝试分配 20x10 的二维数组时,在这些步骤中的哪些步骤中分配了内存

第 1 步:int (*p)[10];

第 2 步:p = malloc( 20 * sizeof(*p) );

是否所有内存(20 x 10 x 4 字节)都在步骤 2 中分配 或者在步骤 1 中也分配了一些内存?

最佳答案

第一步只是一个指针,不分配任何超出单个指针的东西。请记住,它是指向数组的指针,而不是指针数组。

数组中使用的所有存储空间都由您的 malloc() 调用分配。

关于c - 什么时候在将数组声明为指向数组的指针时分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12640620/

相关文章:

swift - Swift 中的 'open' 关键字是什么?

c++ - 解释 C++ 中的空白类函数

ruby map !函数和嵌套数组

c - 如何在汇编中处理二维数组

c - 在arduino中什么是SREG?

c++ - 在 Objective-C 代码中使用 extern "C"的链接器错误

c - 使用 for 循环逐行打印,然后在 c 中扫描到另一个

c++ - C++中的函数与变量声明

javascript - 我如何从另一个二维数组中提取一个二维数组区域

c++ - 如何在特定时间后终止递归函数?