首页 >后端开发 >C++ >如何在 C 中将二维数组转换为指针到指针?

如何在 C 中将二维数组转换为指针到指针?

Patricia Arquette
Patricia Arquette原创
2024-11-25 12:28:14551浏览

How to Convert a 2D Array to a Pointer-to-Pointer in C?

将二维数组转换为指针到指针:解决兼容性差异

将二维数组转换为指针到指针结构需要注意它们内存布局的根本差异。二维数组以矩形网格组织元素,而指针到指针以分层树状方式排列它们。

要解决这种差异,直接转换是不可行的。相反,需要一个中间步骤来建立两个结构之间的兼容性。此中介涉及创建指向 2D 数组每一行的指针数组。

考虑以下示例:

Activity solution[a][b];
Activity *mother = solution;

将此 2D 数组转换为指针到指针结构体中,我们引入了一个指针数组:

Activity *solution_rows[a] = { solution[0], solution[1] /* and so on */ };
Activity **mother = solution_rows;

现在,我们可以访问两种格式的元素, mother[i] 指向二维数组的第 i 行,mother[i][j] 解析为 Solution[i][j]。

以上是如何在 C 中将二维数组转换为指针到指针?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn