【发布时间】:2011-03-29 10:24:53
【问题描述】:
realloc如何知道原始数据的大小?
void *realloc(void *ptr, size_t size);
那么,如果实现是这样的:
temp = malloc(size);
memcpy(.. // How much to copy?
free(ptr);
return temp;
我意识到这不是最初的实现,并且 realloc 并不总是免费的,但是当它这样做时,它会复制多少?
编辑: 感谢您的回答。但是我怎样才能在我的代码中使用 malloc/free/.. 实现 realloc?
【问题讨论】:
-
您的 realloc 实现必须遵循 malloc 和 free 的实现。在没有 malloc 和 free 所拥有的特殊知识的情况下实现它是不可行的。如果您确实让它与一个 malloc 实现一起使用,它可能无法与其他实现一起使用。