c - 我们为什么需要存储分配?

标签 c memory-management storage memory-address

我们实际上需要手动存储分配什么?

我能想到的唯一可能的任务是处理不适合 32 位整数的更大的二进制数据。

这是正确的吗? 还有哪些其他用例?

最佳答案

一般来说,每次编译时不知道数据大小时,您都需要进行手动存储分配。几乎所有情况都分为两类:

  • 您的程序必须从文件/网络/用户输入等读取数据,并且该数据的确切数量在编译时未知,或者
  • 您的程序必须产生并存储一些输出,而您在编写程序时并不知道该输出的确切数量。

当精确大小在运行时确定时,许多非常常见的数据结构都假设能够分配任意大小的内存。这样做可以让数据结构动态“增长”和“收缩”,因为程序的存储需求会随着时间和处理的数据量而变化。

关于c - 我们为什么需要存储分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070883/

相关文章:

c++ - STL自定义分配器来管理不同的内存空间

c# - 存放大件元素

database - AppStore 更新后 Cordova 应用程序的 localStorage 被删除

c - 在一大块中分配 3D 矩阵

c - C 中的类型转换错误

c - 将 plain int 64 位制作成会破坏很多合理的代码吗?

ios - 全局声明的自动释放静态对象在内存中存在多长时间?

c++ - 当我在 C++ 中对未初始化的指针调用 "delete"时会发生什么?

xna - 我应该将自定义关卡文件夹放在 XNA 游戏中的哪里?

通过引用调用与通过复制恢复调用