【发布时间】:2013-06-17 05:33:53
【问题描述】:
一些背景知识:我正在编写一个 C 函数,它将文件中的文本读取到动态重新分配的数组中。我从BUF_SIZE 字符开始,读到达到极限,然后重新分配。完成后,我将\0 附加到文本的末尾(而不是数组的末尾)。
将数组留得太大(并丢失一点内存——非常少)或realloc() 留给较小的大小是否更好?
【问题讨论】:
-
那么你是在做指数级存储扩展吗?
-
致@H2CO3 的第一条评论:我只是重新分配到当前大小+
BUF_SIZE。对于第二条评论:是的,这就是我的猜测。谢谢! -
从统计上讲,每次达到旧限制时都值得将分配大小加倍。 (我可以把它写成答案吗?)
-
请随意。感谢您的帮助!
标签: c memory memory-management malloc realloc