Я пытаюсь использовать функцию для создания двумерного массива символов, установить для всех символов символ x и вывести первые 10 строк, чтобы проверить, правильно ли это было сделано.
Мой код компилируется с использованием:gcc -std = c89 -pedantic code.c Однако, когда я пытаюсь запустить код с помощью ./a.out, я получаю ошибку сегментации.
Я выделил проблему, когда пытаюсь напечатать своймассив, поскольку нет ошибки сегментации, когда строка printf("%c", a[i][j]);
закомментирована.
#define rows 100
#define columns 3
char** makeArr(int rows, int columns)
{
int temp,i,j;
char** a = (char**)malloc(rows*sizeof(char*));
for(temp = 0; temp < rows; temp++)
{
a[temp]=(char*)malloc(columns*sizeof(char));
}
memset(a, 'x', rows*columns*sizeof(a[0][0]));
for(i = 0; i < 10; i++)
{
for(j = 0; j < columns; j++)
{
printf("%c", a[i][j]);
}
printf("\n");
}
return a;
}
Любая помощь в решении этой проблемы будет принята с благодарностью, и если понадобится какой-либо дополнительный контекст, просто дайте мне знать.