可能的重复项:
确定动态分配的内存大小(在 C 语言
中) 新手关于 malloc 和 size 的问题
如何从 C 中的指针获取数组的大小?Malloc -> 已分配了多少内存?
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
不,无法找到指针引用的内存量。
至少不在任何系统上,所以没有便携式方式。
No.并非没有在存储分配大小的地方使用额外的数据。