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

时间:2022-10-06 22:57:57

In the following program i just try to copy some string to the array and print it in another function.

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

I am getting segmentation fault .Could someone point out what i did wrong ?

我得到了分段错误。有人可以指出我做错了吗?

  #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 个解决方案

#1


3  

We need to specify the column size mandatory when passing a 2D array as a parameter.

我们需要在将2D数组作为参数传递时指定列大小。

So, You should declare your function like this:

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

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

#2


1  

Use

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

#3


1  

Provide the second dimension length in a 2-D array in C always. First dimension length is optional if you are declaring a 2-D array.

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

#1


3  

We need to specify the column size mandatory when passing a 2D array as a parameter.

我们需要在将2D数组作为参数传递时指定列大小。

So, You should declare your function like this:

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

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

#2


1  

Use

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

#3


1  

Provide the second dimension length in a 2-D array in C always. First dimension length is optional if you are declaring a 2-D array.

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