Вернуть указатель на массив указателей - C (СИ)
Формулировка задачи:
Мне надо вернуть указатель на массив указателей, как это сделать?
Функция читает данные из файла и заносить их в матрицу.
В файле текст типа:
4 5
1 0 1 0 0
1 1 1 1 1
0 1 1 1 1
0 0 0 1 0
где 4 - строки, 5 - столбцы.
Динамически выделяю память для матрицы 4х5, потом заполняю ее элементами(пробелы и новые строки пропускаю)
теперь хочу вернуть указатель на эту матрицу(указатель на массив указателей)но чет не понимаю, как, подскажите, добрые люди.
void **matrix(FILE *f) // Копируем матрицу из файла { char x; int j; int **mat; // Матрица int i = 0; int y[2]; // Количество столбцов и строк while((x = getc(f)) != '\n') { if('0' >= x || x >= '9') { continue; } else y[i] = x - '0'; ++i; } mat = malloc(sizeof(int *)*y[0]); for(i = 0; i < y[0]; ++i) //Динамически создаем матрицу { mat[i] = malloc(sizeof(int)*y[1]); } for(i = 0; i < y[0]; ++i) // Заполняем матрицу эллементами файла { for(j = 0; j < y[1]; ++j) { x = getc(f); if(x == ' ' || x == '\t' || x == '\n') { --j; continue; } else if('0' <= x && x <= '1') { mat[i][j] = x - '0'; } } } } return ; }
Решение задачи: «Вернуть указатель на массив указателей»
textual
Листинг программы
return mat;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д