如何查找malloc分配的字节数

时间:2014-03-31 06:58:45

标签: c malloc

我有以下代码:

    int size = 0;
void* ptr; 

ptr = malloc(9); //we want to allocate 9 bytes

size = sizeof(*ptr); 
printf("size = %d\n", size);

这导致大小等于1。有没有办法让大小9 ??

2 个答案:

答案 0 :(得分:4)

  

有没有办法让尺寸达到9?

没有便携的方法可以找到它。

但如果您使用的是GNU系统(Glibc),则可以使用malloc_usable_size(3)

注意:malloc_usable_size返回的尺寸可能会大于相应malloc的尺寸。

答案 1 :(得分:1)

没有。如果你想记住malloc分配的内存大小,你应该将它存储在其他地方。

你也可以使用一个数组,然后sizeof会给你一个合适的结果......但如果你使用void *类型,它就无法工作。