[英]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.