10. Создание массивов
#include <stdio.h>
#define ARRAY_MAX_SIZE 2500
int array[ARRAY_MAX_SIZE];
Решение: не использовать такие массивы, особенно с выдуманными ограничениями по размеру никак не связанному с условием работ.
int n; // размер матрицы
float **read_matrix_from_file(char *filename)
{
FILE *f = fopen(filename, "r");
fscanf(f, "%d", &n);
if (n <= 0) // "Error: negative size"
exit(1);
float **matrix = malloc(sizeof(float *) * n);
for (int i = 0; i < n; i++)
{
matrix[i] = malloc(sizeof(float) * n);
if (matrix[i] == NULL) // "Error: Memory allocation failed."
{
free(matrix);
exit(1);
}
for (int j = 0; j < n; j++)
if (!fscanf(f, "%float", &matrix[i][j])) // "Error: Invalid file format."
{
free(matrix);
exit(1);
}
}
fclose(f);
return matrix;
}
int main(void)
{
read_matrix_from_file("inputfile");
}
Last updated