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

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

Barbara Streisand
Barbara Streisand原创
2024-11-13 08:33:02518浏览

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

在 C 语言中将 2D 数组转换为指针到指针

许多开发人员发现自己处于需要将 2D 数组转换为指针的情况 - C 中的 to 指针。这种转换并不像看起来那么简单,并且没有直接的方法可以在不引入中间步骤的情况下完成它。

问题陈述

给定一个二维对象数组:

Activity solution[a][b];

目标是将其转换为指针到指针表示:

Activity **mother = solution;

解决方案

由于类型不兼容,从二维数组到指针的简单转换将不起作用。为了弥补这一差距,需要一个额外的“行索引”数组作为中间步骤:

Activity *solution_rows[a] = { solution[0], solution[1], /* etc. */ };
Activity **mother = solution_rows;

现在,访问 mother[i][j] 将授予对 Solution[i][j] 的访问权限。这种方法保留了 2D 数组的语义,同时提供所需的指针到指针表示。

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

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