c++ - 为什么 "Arrays needs a contiguous block of memory"是 C/C++ 中数组的坏点?

标签 c++ c arrays

我在很多书中看到这样的引用,C/C++ 中数组的主要问题之一是:

Arrays needs a contiguous block of memory

我真的不明白为什么数组的这个特性会被认为是一个问题?我认为编译器可以管理数组并为其分配正确的大小,那么问​​题是什么?

最佳答案

当您考虑内存碎片的情况时,您可能无法找到满足整个数组大小要求的空闲内存块。

这在某些分配/释放方案中尤其容易看到,其中数千个可变大小的对象被快速分配和释放,这可能会在可用内存中留下多个漏洞(取决于所使用的策略) 。此时,不合时宜地分配大对象可能无法找到任何可用空间。

关于c++ - 为什么 "Arrays needs a contiguous block of memory"是 C/C++ 中数组的坏点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025447/

相关文章:

javascript - JS - 我如何比较数组中的两个项目与几乎相似的字符串

c++ - 来自 std::uniform_int_distribution 的重复值

c++ - 使用stringstream时出现"Declaration has no storage class or type specifier"错误

c++ - C++ 中是否有等效的 realloc?

c - 在不使用 float、double 或除法的情况下向上舍入整数

java - 创建对象数组的 ArrayList

arrays - 在 Excel VBA 中过滤二维数组

c++ - 可移植的有符号/无符号字节转换,C++

c++ - 正确保护 PostgreSQL 的 JSON 值

c - 用 char 数组成员填充 union