Buenas gente! les comento rapidito y espero que de forma clara un problemita que me esta llevando ya un par de dias resolver:
Estoy trabajando con varias matrices dinamicas, usando las funciones malloc y free. Logre reservar el espacio de memoria con malloc y liberarlo con free pero esto siempre dentro de mi funcion principal main(). Como tengo que realizar muchas operaciones con las matrices (sumas, multiplicaciones, etc.) decidi hacer dos funciones, una para "generar" las matrices con malloc y otra funcion para "liberarlas" usando free. El tema es que el programa (que lo cargo en un microcontrolador) no puedo hacerlo funcionar de esta ultima manera. Alguien podria decirme de que forma deberia usar malloc y free en dos funciones diferentes sin problemas?
Parte del codigo que estoy usando:(Hay cosas que saque por simplicidad)
Estoy trabajando con varias matrices dinamicas, usando las funciones malloc y free. Logre reservar el espacio de memoria con malloc y liberarlo con free pero esto siempre dentro de mi funcion principal main(). Como tengo que realizar muchas operaciones con las matrices (sumas, multiplicaciones, etc.) decidi hacer dos funciones, una para "generar" las matrices con malloc y otra funcion para "liberarlas" usando free. El tema es que el programa (que lo cargo en un microcontrolador) no puedo hacerlo funcionar de esta ultima manera. Alguien podria decirme de que forma deberia usar malloc y free en dos funciones diferentes sin problemas?
Parte del codigo que estoy usando:(Hay cosas que saque por simplicidad)
Código (cpp) [Seleccionar]
main(){
double **matA;
set_matrix(6,6,matA);
free_mem(matA,6);
//Resevo el bloque de memoria
void set_matrix(int row, int col,double **matr){
matr = malloc(row * sizeof(double *));
for(int i = 0; i < row; i++){
matr[i] = malloc(col * sizeof(double));
}
}
//Libero el espacio
void free_mem(double **matr, int a){
for(int i=0;i<a;i++)
free(matr[i]);
free(matr);
}