C++通过内存地址将多维数组更改为一维数组

标签 c++ arrays memory

我读过 C++ 书,那个 “尽管 C++ 使我们能够对多维数组进行建模,但包含数组的内存是一维的。因此编译器将多维数组映射到内存空间,这只会向一个方向扩展。”

我想,如果我想将 n 维数组更改为一维数组(按升序排列),为什么我只调用 n 维数组内存地址(以一维格式存储)并放入新的一维数组??

(一般我用for语句把n维数组改成1维数组)

这可能吗?如果可能的话,提供简单的示例代码将不胜感激。

最佳答案

指向数组中第一项的指针也是指向被视为一维数组的完整数组的指针。项目在内存中连续存储的保证来自 sizeof 要求,n 项目的数组大小是 n 倍项目的大小,当项目本身是一个数组时也是如此。

关于C++通过内存地址将多维数组更改为一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49828775/

相关文章:

javascript:如果数组中的值在另一个数组中,则只删除一次该值

c - 如何防止内存泄漏

c++ - Valgrind 在 C++ 代码中显示意外输出

memory - erlang:memory() 与 memsup:get_system_memory_data()

c++ - 是否可以通过每次仅在内存中保存一个图 block 来处理完整的图 block tiff 图像?

c++ - fwrite 因段错误而失败

c++ - 如何优化数组的重新排序?

c++ - ROOT条件分支选择

java - 循环遍历二维数组中的主对角线 (/) 及其下方的单元格

javascript - React Promise 代码需要更改 json 值