【发布时间】:2011-10-31 15:28:00
【问题描述】:
我正在编写一个 realloc 函数,目前我的 realloc 处理两种情况(不包括 null 情况)
- 如果块旁边有足够的内存,则展开它
- 否则分配一个新块并执行 memcpy
我的问题是,我还需要处理其他案件吗?我什么都想不出来。
我想到了一种情况,即前一个块可能是空闲的并向前扩展我之前的块,但这需要一个 memcpy,所以实现它是没有意义的。
【问题讨论】:
-
这是一个练习(无论是自我强加的还是家庭作业)?任何 stdlib 的 realloc 都应该已经如此。我还没有遇到过没有的。关于这个问题,你已经涵盖了我能想到的所有情况。
-
考虑“相同大小”的情况 - 不太可能,但要确保没有损坏。
标签: c