Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/08/2016, 06:46
enrieto
 
Fecha de Ingreso: abril-2016
Mensajes: 31
Antigüedad: 8 años
Puntos: 5
Respuesta: liberar memoria correctamente con free

Creo que tendrías que revisar esto:
Cita:
int **matrix = ( int** ) malloc ( sizeof (int) * linhas * colunas );
malloc ( sizeof (int) * linhas * colunas ); va a reservar espacio en memoria para una cantidad (linhas * colunas) de ints, cuando en realidad deberías reservar esa misma cantidad (linhas * colunas) pero para punteros a int.

En una arquitectura donde ints y punteros a ints tienen el mismo tamaño (32 bits cada uno, por ejemplo) no habría diferencia, pero donde sizeof(int) != sizeof(int*) eso no va a andar. Entonces, tendría que ser
Cita:
int** matrix = ( int** ) malloc ( sizeof (int*) * linhas * colunas );