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

时间:2016-07-26 05:33:17

标签: 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],"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]);
  }

3 个答案:

答案 0 :(得分:3)

在传递 2D数组作为参数时,我们需要指定 大小 必需

所以,你应该声明你的函数:

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

答案 1 :(得分:1)

使用

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

答案 2 :(得分:1)

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

相关问题