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中的二维数组中提供第二个维度长度。如果要声明二维数组,则第一个维度长度是可选的。