在尝试分配 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/