25/10/2006, 13:51
|
| | 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. |