可能重复:
determine size of dynamically allocated memory in c
newbie questions about malloc and sizeof
How can I get the size of an array from a pointer in C?如何获得动态分配内存的大小(使用malloc或calloc)?
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
这是特定的实现。例如,当你在Linux内核中时,你可以通过kmalloc获得这些信息:'stuff = kmalloc(1,GFP_KERNEL); printk(“我得到了:%zu字节的内存\ n”,ksize(stuff));'显然只能在Linux内核中工作,您需要获得一个与您正在使用的malloc实现绑定的答案。 – Mike