Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   Error en windows con un programa (http://www.forosdelweb.com/f14/error-windows-con-programa-580783/)

Adree 28/04/2008 10:25

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

aloqui 28/04/2008 11:03

Re: Error en windows con un programa
 
Cita:

Iniciado por Adree (Mensaje 2382474)
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, ... )

Adree 28/04/2008 12:13

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.

aloqui 28/04/2008 12:36

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.


La zona horaria es GMT -6. Ahora son las 23:09.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.