[C con Clase] ayuuda con bucketsort

Programante programante en gmail.com
Dom Sep 2 19:56:40 CEST 2007


German Ponce escribió:
> no se porque el siguiente algoritmo no me ejecuta bien de repente se 
> cae y tengo que cerrarlo, puede que sea problemas con los punteros , 
> pero no puedo encontrar a es error ¿me prodrian ayudar?
>
>                 while(temp!=NULL)     //move till the appropriate 
> position in the bucket
>                    {
>                            if(temp->value>array[j])
>                                    break;
>                            pre=temp;
>                            temp=temp->next;
>                    }
>                 if(temp->value>array[j]) //if the new value is in 
> betwen or at the begining
>                 {
Puedes salir del bucle while por dos condiciones. Que temp sea null, o 
que temp->value > array[j]. A continuación realizas un if para saber el 
motivo.
El problema está en que si temp es NULL, no puedes comprobar temp->value 
 > array[j], ya que para saber temp->value intenta dereferenciar un 
puntero nulo.
Sugiero cambiar la condición del if por if  (temp!=NULL), en cuyo caso 
ya funciona :-)





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