c - 在不知道维度的情况下在 C 中创建指向多维数组的指针

标签 c pointers multidimensional-array

假设我有一个指针

char *p;

在我的 main 函数中我有一个多维数组 a:

char a[10][15];

我希望 p 指向 a 并且能够使用 p[x][y] 来引用大批。我以为 p = a; 通常会处理这个问题,但我遇到了转换错误。

p = &a[0][0];

创建新指针,但将其视为一维字符数组。 有什么方法可以使指针将数组视为二维数组?

请注意,当我定义 p 时,我还不知道 a 的维度。

最佳答案

声明

char * p;

使 p 成为指向 char 类型对象的指针,或指向 char 类型对象数组的第一个元素的指针。

您想声明一个指向 15 个 char 数组的指针,或者指向一个 15 个 char 数组的数组的第一个元素的指针:

char (* p) [15];

现在你可以说

p = a;

并通过p访问a的元素。

关于c - 在不知道维度的情况下在 C 中创建指向多维数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53807775/

相关文章:

c - 带指针的结构体数组

c++ - 重载抽象虚方法返回模板参数 T& 作为具体参数 short*&

c - 为什么在C语言中会发生这种情况?指针赋值不兼容

java - 如何使用java用用户输入值更新数组中的数据?

c - C函数中返回字符串

c# - 从纯 C 程序调用的 DLL 函数(在 C# .NET 中)导致错误

c - OpenSSL:无法使用 SSL_CTX_new() 创建 SSL_CTX *

c - 两位数指针?这怎么发生的?

PHP:忽略键并提取数组的值

c - 如何使用 C 将二维数组写入文件?