提问人:user129393192 提问时间:6/15/2023 更新时间:6/15/2023 访问量:64
如何在内存中保存未知量的数据?
How to save an unknown amount of data in memory?
问:
我之前在这里发过帖子,但根据评论,我的想法是错误的。我的问题很清楚:当从流中读取时,传入的字节数未知,将数据保存在内存中以备后用的最佳方法是什么?
以下是我的一些想法:
mmap
一个不冲突的内存区域,必要时会更多(缺点:管理起来可能很烦人)mmap
- 创建一个缓冲区的链接列表结构,在分配下一个缓冲区之前填充每个缓冲区(可能易于管理,因为我编写了 API)
- (在堆栈上)分配一个指向此类缓冲区的指针数组(例如 100,使用 分配),并希望您没有超过(100 * 缓冲区大小)的数据来读取(最简单但最不可靠的解决方案)
malloc
我的想法是,另一个被严重拒绝的帖子是:
- 弄乱和做我自己的连续堆(然后可能会与任何使用的人发生冲突 - 尽管我个人不介意这一点,因为我只将 API 用于此应用程序,并且这是一个学习项目)
sbrk
brk
malloc
malloc
unistd
有没有一种标准方法(甚至一个特定的函数)来解决这个特定的问题:需要读取未知数量的数据并将其保存在内存中,你如何保存它?
答: 暂无答案
上一个:C 语言中动态结构的内存分配
下一个:循环外的变量值重置
评论
realloc
malloc
brk
sbrk
malloc
malloc
realloc
TAILQ