繁体   English   中英

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

[英]How to pass a array of strings to a function?

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

我遇到了细分错误。有人可以指出我做错了什么吗?

  #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]);
  }

当将2D数组作为参数传递时,我们需要指定强制 大小

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

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

采用

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM