Вернуть указатель на массив указателей - 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;