C 如何将字符串数组传递给函数?

C 如何将字符串数组传递给函数?,c,arrays,string,C,Arrays,String,在下面的程序中,我只是尝试将一些字符串复制到数组中,并在另一个函数中打印它 我错了。有人能指出我做错了什么吗 #include <stdio.h> #include <string.h> #define MAX_STR_LEN 20 void print_str(char str[][],int count); int main() { char str[2][MAX_STR_LEN]; strncpy(str[0],"

在下面的程序中,我只是尝试将一些字符串复制到数组中,并在另一个函数中打印它

我错了。有人能指出我做错了什么吗

  #include <stdio.h>
  #include <string.h>
  #define MAX_STR_LEN 20

  void print_str(char str[][],int count);

  int main()
  {
      char str[2][MAX_STR_LEN];
      strncpy(str[0],"hello",MAX_STR_LEN);
      strncpy(str[1],"world",MAX_STR_LEN);
      print_str(str,2);
      return 0;
  }
  void print_str(char str[][],int count)
  {
      int i;
      for(i=0;i<count;i++)
      printf("%s\n",str[i]);
  }
#包括
#包括
#定义最大长度20
无效打印字符串(字符字符串[],整数计数);
int main()
{
char str[2][MAX_str_LEN];
strncpy(str[0],“你好”,MAX_stru LEN);
strncpy(str[1],“世界”,MAX_stru LEN);
打印(str,2);
返回0;
}
无效打印字符串(字符字符串[],整数计数)
{
int i;
对于(i=0;i使用

使用


当将二维数组作为参数传递时,我们需要指定列的大小必填项

因此,您应该这样声明您的函数:

void print_str(char str[][MAX_STR_LEN],int count);

当将二维数组作为参数传递时,我们需要指定列的大小必填项

因此,您应该这样声明您的函数:

void print_str(char str[][MAX_STR_LEN],int count);

始终在C中提供二维数组中的二维长度。如果要声明二维数组,则第一维长度是可选的。

始终在C中提供二维数组中的第二维长度。如果要声明二维数组,则第一维长度是可选的。

void print_str(char str[],int count)
-->
void print\u str(char str[][MAX\u str\u LEN],int count)
如果您使用的任何教程或书籍中都没有记录这一点,请查找其他内容。参数应为
char str[][MAX\u str\u LEN]
。除了作为参数的数组的最主要维度外,其他所有维度都必须声明。这个问题可能有数百个不同形式的副本,但通常标题是如此多样,很难找到它们。一个接近的答案是,尤其是第二个答案。@Naveen Kumar我想知道什么是compi你用的是ler,因为我知道的大多数人甚至都不会编译这段代码。
void print\u str(char str[]],int count)
-->
void print\u str(char str[][MAX\u str\u LEN],int count)
如果你在使用的任何教程或书中都没有记录这段代码,请查找其他内容。参数应该是
char str[][MAX\u str LEN]
。除了作为参数的数组的最主要维度外,其他所有维度都必须声明。这个问题可能有数百个不同形式的副本,但通常标题是如此多样,很难找到它们。一个接近的答案是,尤其是第二个答案。@Naveen Kumar我想知道什么是compi你用的是ler——因为我知道的大多数人甚至都不会编译这段代码。