查找使用malloc获得的内存大小

时间:2018-05-16 13:45:46

标签: malloc sizeof

char buf [50];    char * ptr;

scanf("%s",buf); ptr =(char *)malloc(sizeof(buf)+1);

//这就是如何知道动态分配是否正确完成? 我想知道ptr指出的内存大小

1 个答案:

答案 0 :(得分:0)

标准malloc函数不提供此信息。 除非你使用自定义分配器或添加一些元数据来保持大小信息以及堆对象(当malloc被称为内存从堆布局中分配)时,这并不容易知道指针所指向的对象的大小。 malloc函数。 有解决方案可以提供这些信息。有一个名为胖指针的想法,可以找到几个胖指针库,如Cello。可以在work中找到胖指针的改进版本。