Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/10/2006, 13:51
MaxExtreme
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Estás mezclando C con C++.

No, no necesitas hacer ningún "malloc" en medio... "new" es el operador que reserva memoria y se encarga de llamar a malloc. Reserva la memoria que necesites, luego rellena la matriz, y ya está, no hagas más reservas o virguerías.

Por otra parte, no es necesario hacer una matriz bidimensional. Con una de 1 dimensión te vale:

matriz = new int[filas * columnas];

Para acceder a la fila F y columna C, usas:

matriz[columnas*F+C]

Por último (que en tu programa no lo haces), debes liberar la memoria:

delete [] matriz;

O si usas tu matriz bidimensional, deberás ir liberando los int de matriz[i] y luego matriz en sí; al igual que lo hiciste para crear la matriz.

Y en cualquier programa, no mezcles "new/delete" con "malloc/free" porque no tiene sentido.