我的问题有点令人困惑,但我要问的是,realloc当它最小化缓冲区时,剩余数据是如何处理的?例如,我只想说我有一个填充50字节的缓冲区(假设我的缓冲区最多可以容纳50个字节的数据).稍后在我的代码中,我调整缓冲区的大小realloc,现在只能容纳30个字节.什么是realloc与左超过20个字节呢?
realloc正好是malloc+ memcpy+ free,除了有时它设法就地执行它返回的指针在数值上等于你输入的指针(但你永远不能依赖它).剩下的20个字节被释放.
从C标准,7.22.3.5realloc功能
该
realloc函数释放指向的旧对象,ptr并返回指向具有指定大小的新对象的指针size.新对象的内容应与解除分配之前的旧对象的内容相同,直到新旧大小中的较小者为止.新对象中超出旧对象大小的任何字节都具有不确定的值.
另见http://en.cppreference.com/w/c/memory/realloc或http://pubs.opengroup.org/onlinepubs/9699919799/functions/realloc.html