• Martes 12 de Noviembre de 2024, 20:56

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - skymir

Páginas: [1]
1
C/C++ / Error en el Bus!!
« en: Lunes 27 de Diciembre de 2010, 12:04 »
Hola, tengo un problema con un programa que estoy realizando, en el cual me salta un error en el bus cuando le introduzco unos datos determinados. El problema en el codigo se produce(en mi opinion aqui):

 int pot=(int)pow(2,(double)k);
 int *buffer;                      
 buffer=(int *)malloc(pot*n*sizeof(int));
 if ((buffer==NULL))                            //si no hay memoria libre devuelve NULL

     {
        printf ("nNo hay memoria buffer");
        exit(1);
     }

Al programa en cuestion se le meten unos datos por linea de comandos y el fallo me surge cuando la variable k toma valores de 25 hacia arriba. Supongo que esto será devido a que si K toma valores altos la variable pot tomara valores aun mas elevados y la cantidad memoria a reservar será elevada (supongamos n=100). Lo raro es que cuando lanzo el programa si este no fuera capaz de reservar dicha cantidad de memoria deberia de saltar al if que tiene a continuación, cosa que no hace ya que el programa se sigue ejecutando y lineas mas abajo me lanza un ERROR EN EL BUS. Lo que tengo claro es que el error viene determinado por el valor de la variable K.
Estoy utilizando el compilador g++ de Linux por si sirve de ayuda.

Un saludo y gracias!!

Páginas: [1]