C++按内存地址将多维数组更改为一维数组
C++ changing multi-Dimension Array to one-D array by memory address
我在C++书中读到,"尽管C++使我们能够对多维数组进行建模,但包含数组的内存是一维的。因此,编译器将多维数组映射到内存空间,内存空间仅扩展一个方向。
我想,如果我想将 n 维数组更改为 1 维数组(按升序(,为什么我只调用 n-d 数组内存地址(以 1-d 格式存储(并放入新的 1-d 数组?
(通常我用 for 语句将 n-d 数组更改为 1-d 数组(
如果可能的话,提供简单的示例代码将不胜感激。
指向数组中第一项的指针也是指向被视为一维数组的完整数组的指针。保证项目连续存储在内存中来自sizeof
要求,即 n 个项目的数组的大小是项目大小的 n 倍,当项目本身是一个数组时也是如此。
是的,可以将 n 维数组转换为一维数组。
让我以二维数组为例来说明:
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
b[i * n + j] = a[i][j];
}
}
相关文章:
- 将二维数组的所有元素插入到一维数组中
- C++语法差异:二维和一维数组(指针算术)
- 将一维数组写入 CSV C++中的不同列?
- C++:将矩阵存储在一维数组中
- 如何在一维数组中的每个元素中都有多个int值
- 以C++填充一维数组
- 用于在一维数组上嵌套循环操作的正确 openmp 指令
- 如何在 <threads> c++ 中使用和一维数组进行矩阵乘法?
- C++按内存地址将多维数组更改为一维数组
- 在 c++ 中返回一维数组时出错
- 一维数组映射方式的性能差异问题
- 如何使用一维数组更改二维数组中的值?
- 使用二维数组作为一维数组是否正确?可能会导致未定义的行为左右?
- 将一维数组转换为二维数组
- 如何使用一维数组列表初始化二维数组
- 在一维数组中对二维进行排序
- 将一维数组的索引转换为二维数组
- 通过访问二维数组实现双线性插值的概念类似于一维数组
- 将二维数组传递到只需要一维数组的函数中(C++)
- 在行和列中打印数组(一维数组)