我动态分配了二维数组。 这是代码
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/