Foros del Web » Programación para mayores de 30 ;) » Programación General »

Error en windows con un programa

Estas en el tema de Error en windows con un programa en el foro de Programación General en Foros del Web. He hecho el siguiente programa, una lista que va almacenando productos y me da error con windows despues del compilar: #include <stdio.h> #include <stdlib.h> typedef ...
  #1 (permalink)  
Antiguo 28/04/2008, 10:25
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años
Puntos: 0
Error en windows con un programa

He hecho el siguiente programa, una lista que va almacenando productos y me da error con windows despues del compilar:
#include <stdio.h>
#include <stdlib.h>

typedef struct stNode {
char nomFruita[50];
float preuPerQuilo;
int quantitat;
struct stNode *seg;
}tNode;

typedef struct stLlista{
tNode *llista;
}tLlista;

void OmplirStock (tLlista *a)
{
int x;
int i;
tNode *b;
tNode *actual;
b= (tNode*) malloc (sizeof (tNode));
if (b==NULL){
printf ("ERROR");
exit(-1);}
printf ("Quants productes vol demanar al proveidor?\n");
scanf ("%d", &x);
actual = a->llista;
i=1;
while (i<=x){
printf ("Introdueix el nom del producte\n");
scanf ("%s", &b->nomFruita[50]);
printf ("Introdueix el preu del producte\n");
scanf ("%f", &b->preuPerQuilo);
printf ("Introdueix la quantitat del producte\n");
scanf ("%d", &b->quantitat);
if (actual == NULL){
b->seg = a->llista;
a->llista = b;
}else{
b->seg = actual->seg;
actual = b;
}
i = i+1;
}
}

int main () {


tLlista llista;
OmplirStock (&llista);
system ("PAUSE");
return (0);
}

Muchas gracias
  #2 (permalink)  
Antiguo 28/04/2008, 11:03
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Re: Error en windows con un programa

Cita:
Iniciado por Adree Ver Mensaje
He hecho el siguiente programa, una lista que va almacenando productos y me da error con windows despues del compilar:
No se entiende si te da error al compilar o al ejecutar.
Y para que te podamos ayudar deberías poner el texto del error que te sale, y si es en ejecución en que momento (tras rellenar un producto, tras rellenar 3 productos, ... )
__________________
Grupos de Música
Pop Music Stars
  #3 (permalink)  
Antiguo 28/04/2008, 12:13
 
Fecha de Ingreso: abril-2008
Mensajes: 28
Antigüedad: 16 años
Puntos: 0
Re: Error en windows con un programa

El error es en ejecucion y esta en esta parte del codigo:

if (actual == NULL){
hasta el i++

Me hace solamente una iteración y despues sale el error de windows.
Gracias.
  #4 (permalink)  
Antiguo 28/04/2008, 12:36
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Re: Error en windows con un programa

En principio veo que la variable tLlista llista; la has declarado pero no la has inicializado por lo que el puntero que tiene dentro no tiene valor definido.

Te sugiero que la iniciales antes de usarla, por ejemplo con memset o dandole valores a los campos:
- memset( &llista, '\0', sizeof(llista) ); o
- llista.llista = NULL;

Y luego para seguir el problema lo mejor es un depurador, pero si no tienes puedes usar printfs de las variables sospechosas en el punto en que se está muriendo.
Suerte.
__________________
Grupos de Música
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:24.