Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/09/2013, 14:45
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 3 meses
Puntos: 83
Respuesta: Programa en c++ dejo de funcionar

Ejecuta en el depurador y veras que tienes 2 violaciones de segmento (en las dos funciones MatrixC de 3 y 4 argumentos) porque intentas acceder a los elementos de una array no inicializado:

Código C:
Ver original
  1. MatrixC(int a1,int a2, int a3) {
  2.     int i,j;
  3.  
  4.     //primero tienes que reservar la memoria necesaria
  5.     M = new complejo *[a1];
  6.     for(i = 0; i < a1; i++ ) {
  7.         M[i] = new complejo[a2];
  8.     }
  9.  
  10.     f=a1;
  11.     c=a2;
  12.  
  13.     for(i=0; i<f; i++) {
  14.         for(j=0; j<c; j++) {
  15.             M[i][j].r = a3;//sin reservar memoria esto es una violacion de segmento
  16.             M[i][j].i = a3;//y esto otra pero que nunca llega a ejecutarse
  17.         }
  18.     }
  19. };
  20. //necesitas lo mismo para la tra MatrixC de 4 argumentos

Recuerda que cuando reservas memoria dinamica para cada new necesitas un delete

Saludos
vosk