gpt4 book ai didi

c - 将 2D 数组指针传递给 C 中的函数

转载 作者:行者123 更新时间:2023-11-30 19:50:58 26 4
gpt4 key购买 nike

我试图将 2D 数组的地址传递给 C 中的函数。我将 2D 数组初始化为:

const int N = 3;
char t[N][N];

我尝试将其转换为字符***:

char*** t_ptr = &t;

但它失败了:

warning: initialization from incompatible pointer type

我想要接收数组的函数有一个原型(prototype),例如:

void f(char*** t, int N) { ... };

我做错了什么?谢谢。

最佳答案

这个

char*** t_ptr = &t;

正如编译器指出的那样是错误的,因为t是一个二维数组,而不是像char***这样的三重指针,使用指向数组的指针 指向它。例如

char t[3][3] = { "ab","de","gh"}; /* total 3 1D array & each 1D array has 3 elements */
char (*t_ptr)[3] = t; /* t_ptr is a pointer to an array, pointing to 3 elements at a time */

你可以像这样打印t_ptr

for(int index = 0; index < 3 ; index++) {
printf("%s\n",t_ptr[index]);
}

关于c - 将 2D 数组指针传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com