char buf[50]; 字符* PTR;
scanf("%s", buf(; PTR = (char*(malloc(sizeof(buf(+1(;
而这个,怎么知道动态分配是否正确完成? 我想知道 PTR 指向的内存大小
标准 malloc 函数不提供此信息。 除非您使用自定义分配器或添加一些元数据以通过插入 malloc 函数来将大小信息与堆对象一起保存(当 malloc 称为内存时,从堆布局中分配(并不是简单的方法。 有一些解决方案可以提供此信息。有一个想法叫做胖指针,可以找到几个胖指针库,比如大提琴。在这项工作中可以找到胖指针的改进版本。