gpt4 book ai didi

C 程序 : newbie trying to pass 2D string array into a function

转载 作者:太空狗 更新时间:2023-10-29 16:08:45 31 4
gpt4 key购买 nike

在 C 中编程(使用 -std=C89),并在尝试将字符串数组传递给函数时遇到错误。

main() 中,我声明数组如下:

#define ROWS 501
#define COLS 101
void my_function( char **);
...
char my_array[ROWS][COLS];
...
my_function(my_array);

my_function 中,我将数组声明为:

void my_function( char **my_array )
{
...
}

我收到这个错误:

警告:从不兼容的指针类型传递“my_function”的参数 1,
注意:应为 'char **' 但参数类型为 'char (*)[101]

最佳答案

二维字符数组仍然是字符数组,原型(prototype)为char *my_array。所以只需将您的函数定义更改为:

void my_function(char *my_array)

请注意,这会将数组展平。有不同的技术来保持数组的二维性,一个简单的方法是使用这个替代原型(prototype):

void my_function(char my_array[][COLS])

这将在传递时保留数组的维度。

char **my_array 表示完全不同的东西(例如,指向数组的指针)。

关于C 程序 : newbie trying to pass 2D string array into a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082127/

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