c - 如何获取动态分配的二维数组的大小

标签 c arrays 2d sizeof dynamic-allocation

我动态分配了二维数组。 这是代码

int **arrofptr ;
arrofptr = (int **)malloc(sizeof(int *) * 2);
arrofptr[0] = (int *)malloc(sizeof(int)*6144);
arrofptr[1] = (int *)malloc(sizeof(int)*4800);

现在我必须知道arrofptr、arrofptr[0]、arrofptr[1]中分配了多少字节? 有什么办法可以知道尺寸吗?

如果我们打印

sizeof(arrofptr);
sizeof(arrofptr[0]);
sizeof(arrofptr[1]);

然后它将打印 4。

最佳答案

您无法找到arrofptr的大小,因为它只是一个指向指针的指针。您正在使用它定义一个数组的数组。仅通过指针无法得知大小信息,您需要自己维护大小信息。

关于c - 如何获取动态分配的二维数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634723/

相关文章:

c - 在 C 中反转字符串 for 循环错误

c argv[计数]+2

graphics - 简单的2D图形编程

java - 二维数组但带有索引 - java

c - 如何在C中正确进行SQLite SELECT查询?

C 编程 : Why printf Format Specifier %s Is Invalid For The Number "123"?

c - 将具有未知数量元素的字符串扫描到 C 中的 int 数组

PHP Mysqli 从 JOIN 返回数组(别名为数组键)

java - 复制不带指定元素的数组java

arrays - 在数组中的每个句子中搜索关键字 - Swift