У меня есть фрагмент кода, который вычисляет координаты из заданного пользователем размера сетки и печатает их в текстовом файле. Однако, когда я запускаю программу, я получаю ошибку сегментации, но только для значений 5 или 7 для сетки, все остальные значения работают по назначению.C - Ошибка сегментации для выбранных значений fprintf
Код выглядит следующим образом
// Writing OUTPUT 1 to file
// Creating & opening file
FILE *f1 = fopen("coords_output.txt", "w");
if(f1 == NULL)
{
printf("Error in opening file\n");
exit(0);
}
// Writing to file
for(i=0; i < arrayLength; i++)
{
for(j=0; j < arrayLength; j++)
{
fprintf(f1, "\n%d,%d %d", i, j, coordArray[i][j]);
}
}
// Close file
fclose(f1);here
Если целый раздел под // запись в файл удаляется программа работает, и независимо от того, что я размещаю там программа не будет выполнена.
У меня нет большого понимания c, особенно когда дело касается таких областей, однако я потратил много времени на то, чтобы исправить эту проблему и, похоже, не мог прийти к ответу.
EDIT: coordArray определяется как
coordArray = malloc(arrayLength * sizeof(int *));
for(i=0; i <= arrayLength; i++)
{
coordArray[i] = malloc(arrayLength * sizeof(int));
}
arrayLength берется из пользовательского ввода
validInput = validInput && sscanf(argv[1], "%d", &arrayLength);
Как произносится 'coordArray'? –
Нам нужен еще код, также, вы пробовали отладчик? –
по крайней мере 'coordArray' и' arrayLength' – technosaurus