Как вернуть матрицу из функции? Я делаю программу, которая постоянно отправляет матрицу в функцию, а также требует постоянного возврата матрицы из функции, я знаю, как отправить матрицу в функцию (с двумя указателями), но каждый раз, когда я пытаюсь позвонить функция говорит, что это несовместимый тип. Вот пример функции, я использую:Возврат матрицы из функции
float *filtrar(float val, int col, float **M)
{
int i=0,j,k=0;
float temp[4][6],linea[6];
if (existe(val, col, M)>0)
{
for (i=0; i<tam; i++)
{
if (linea[col]==val)
{
for (j= 0; j <6; j++)
temp[k][j]=M[i][j];
k++;
}
}
}
}
else
{
for (i=0; i<tam; i++)
{
if (linea[col]==inferior(val,col,M)||linea[col]==superior(val,col,M))
{
for (j= 0; j < 6; j++)
{
temp[k][j]=M[i][j];
k++;
}
}
}
}
}
А вот та часть, которая призывает к этому Fuction:
float **m=filtrar(v1,t1,agua_vapor);
Эта последняя часть является тот, где мне нужна ваша помощь, так как я не знаю, как дать asigne матрицу, полученную из функции to te переменной m, я не знаю, должна ли она быть точкой, двойным указателем, общей матрицей и т. д.
Буду признателен если кто-то может показать мне, как это сделать.
Вот пример того, как я объявил матрицу, чтобы работать с, очень похожий на тот, что предыдущая функция показала использует в случае, если кто задавался вопросом, как я это сделал:
float *carga_archivo(char nombre_de_archivo)
{
float M[200][6];
float *p[6], **q;
int i=0;
FILE *archivo;
archivo=fopen(nombre_de_archivo,"r");
while(!feof(archivo))
{
fscanf(archivo,"%f\t%f\t%f\t%f\t%f\t%f\n",&M[0][i],&M[1][i],&M[2][i],&M[3][i],&M[4][i],&M[5][i],&M[6][i]);
i++;
}
tam=i;
for(i=0;i<6;i++)
p[i]=M[i];
q=p;
fclose (archivo);
return M;
}
Любое исправление в письме или способ задать этот вопрос приветствуется.
возвращаемого значение вашей функции имеет типа поплавок *, и вы объявили м как поплавок ** –
также в вашей функции filtrar, откуда вы возвращаетесь из функции? –
@HardikSanghvi У меня нет второго комментария, вы спрашиваете, откуда взялась матрица? –