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

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

Linda Hamilton
Linda Hamilton原创
2024-11-12 10:07:01842浏览

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

将二维数组转换为指针到指针

考虑以下场景:

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

在这种情况下,您可能希望将 2D 对象数组转换为指针到指针。然而,由于类型不兼容,直接转换是不可能的。

引入中间数组

为了弥补差距,引入一个中间“行索引”数组:

Activity solution[a][b];

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

Activity **mother = solution_rows;

这允许您访问以下元素方式:

mother[i][j] = solution[i][j]

理解转换

solution[i] 是指向 2D 数组第 i 行的指针。 Solution_rows 是这些行指针的数组。因此,solution_rows[i] 等价于solution[i]。

当您将solution_rows 分配给mother 时,您实际上创建了一个指向解决方案中每行的第一个元素的指针。

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

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