2

可能重复:
确定 c 中动态分配内存的大小
关于 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

4

2 回答 2

4

不,没有办法找到指针所指的内存量。

至少不在任何系统上,所以没有便携的方式。

于 2012-10-09T15:36:59.127 回答
2

不,不是在存储分配大小的地方使用额外的数据。

于 2012-10-09T15:37:04.200 回答