La idea es simple: para cada new necesitas un delete, y si usas un new para mas de un elemento necesitas un delete para mas de un elemento
Código:
#define FILAS 3
#define COLUMNAS 5
void crearMatriz(int **m) {
for(int i = 0; i < FILAS; i++) {
m[i] = new int[COLUMNAS];//creas las columnas de cada fila
}
}
int main() {
int **matriz1;
matriz1 = new int *[FILAS];//creas las filas
crearMatriz(matriz1);
for(int i = 0; i < FILAS; i++) {
delete [] matriz1[i] ;//eliminas las columnas de cada fila
}
delete [] matriz1;//eliminas las filas
return 0;
}
Para hacerlo bien faltan las comprovaciones de error, y asignar el valor nulo a las variables nulas. Aunque creo que seria mas apropiado dejar que la funcion cree tambien las filas en vez de solo las columnas no?
Saludos
vosk