【发布时间】:2016-07-26 05:33:17
【问题描述】:
在下面的程序中,我只是尝试将一些字符串复制到数组中并在另一个函数中打印。
我遇到分段错误。有人能指出我做错了什么吗?
#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]);
}
【问题讨论】:
-
void print_str(char str[][],int count)-->void print_str(char str[][MAX_STR_LEN],int count) -
如果您使用的任何教程或书籍中都没有记录,请查找其他内容。参数应为
char str[][MAX_STR_LEN]。作为参数必须声明的数组数组中除了最主要的维度之外的所有维度。这个问题可能有数百个以一种或另一种形式重复,但通常标题如此多样化,很难找到它们。 close 是this question,尤其是second 答案。 -
@Naveen Kumar 我想知道你使用的是什么编译器——因为我知道的大多数人甚至不会编译这段代码。