比如我想要这样一个功能:
char *dst = (char*)malloc(512);
char *src = (char*)malloc(1024);
...
dst = (char*)realloc(dst, 1024);
memcpy(dst, src, 1024);
如您所见,我只是希望函数 realloc() 扩展缓冲区的大小,但 C 库中的 realloc() 可能会从旧地址复制数据。那么图书馆里有没有像我想要的功能呢?
为什么不只是:
free(dst);
dst = malloc(1024);
另请注意realloc
可能会移动块并调整其大小,因此保留先前调用返回的旧指针malloc
, calloc
or realloc
可能不再引用同一个块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)