可能重复:确定有关malloc和sizeof的新手问题中动态分配内存的大小如何从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
2 回答
不,没有办法找到指针所指的内存量 .
至少不在任何系统上,所以没有便携方式 .
不是 . 在没有使用存储分配大小的额外数据的情况下 .