В следующей программе я просто попытаюсь скопировать некоторую строку в массив и напечатать ее в другой функции.Как передать массив строк функции?
Я получаю ошибку сегментации. Может кто-то указать, что я сделал неправильно?
#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)' – BLUEPIXY
Если это не задокументировано в любом учебнике или книге, найти, найти другое. Параметр должен быть 'char str [] [MAX_STR_LEN]'. Объявляется все, кроме самого доминирующего размера массива массивов как параметр * must *. Есть, вероятно, * сотни * дубликатов этой проблемы в той или иной форме, но, как правило, название настолько разнообразно, что их сложно найти. Тот, который * close * будет [этот вопрос] (https://stackoverflow.com/questions/486075/passing-an-array-of-strings-as-parameter-to-a-function-in-c), в частности, * второй * ответ. – WhozCraig
@Naveen Kumar Мне интересно, какой компилятор вы используете, потому что большинство из них я даже не компилирую этот код. – AnArrayOfFunctions