[C con Clase] problemas en la ejecucion de un programa

Steven Richard Davidson stevenrichard.davidson en gmail.com
Mie Sep 5 09:31:04 CEST 2007


Hola Germán,

On 9/5/07, German Ponce <german.informatico en gmail.com> wrote:
> holas, tengo un problema con un programa hecho en c++ el cual tengo que
> ordear un millon de numeros para probar la eficiencia de ciertos algoritmos
> de ordenacion, el problema inicialmenete trate de ordenar 100 , despues
> 100.000   y cuando quise ordenar 1 millon de numeros me aparece un error en
> el ejecutable ¿por que aparece esto ? ¿es solucionable?  como dato me ocurre
> con todos los algoritmos de ordenamiento que he estudiado
>

Sin ver algo de código fuente o el mensaje del error que se produce,
no podemos serte de gran ayuda.

De todas maneras, sospecho que el problema está en que has declarado
un array de 1 millón de números enteros en 'main()'. Esto puede
provocar un problema porque la memoria para el ejecutable es limitado.
Tu array ocupará unos 3,8 MB si el tipo 'int' es de 32 bits. Sugiero o
bien declarar tu array globalmente o bien usar un puntero y adjudicar
memoria dinámicamente. Por ejemplo,

int main()
{
  int *pLista = new int[1000000];

  if( !pLista )
  {
    cerr << "No se pudo crear la memoria necesaria\n";
    return -1;
  }

  // Hacer la comparativa de los algoritmos de ordenación
  ...

  delete[] pLista;

  return 0;
}


Espero que esto te arregla el problema.

Steven




Más información sobre la lista de distribución Cconclase