Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/03/2013, 12:56
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: [C++] Duda con new y delete o delete[]

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