wallydosantos
18-04-2007, 01:16
boas... tenho um problema com uma funçao pra eliminar um elemento de um ficheiro...o ficheiro e do tipo(1;Ricardo Gomes Silva;Avenida dos Combatentes,1200 Lisboa;140567000)e eu quero eliminar por numero. ao copilar nao me da erros mas quando ponho a correr rebenta. estou a utilizae uma estrutura do tipo cliente:
typedef struct cliente{
long int num;
char nome[max];
char morada[max];
long int n_c;
}cliente;
eis a funcao:
void removenode(LIST * lista,void * ptr_data)
{
LIST_NODE * node, * ant;
BOOLEAN find=FALSE;
node=*lista;
while(node!=NULL && find==FALSE)
{
if(DATA(node)==ptr_data)
{
if(node==*lista)
{
*lista=NEXT(node);
free(node);
}
else
{
NEXT(ant)=NEXT(node);
free(DATA(node));
free(node);
}
find=TRUE;
}
else
{
ant=node;
node=NEXT(node);
}
}
return;
}
nota :
so elimina o primeiro elemento gostava de eliminar qualquer um.~
muito obrigado.
typedef struct cliente{
long int num;
char nome[max];
char morada[max];
long int n_c;
}cliente;
eis a funcao:
void removenode(LIST * lista,void * ptr_data)
{
LIST_NODE * node, * ant;
BOOLEAN find=FALSE;
node=*lista;
while(node!=NULL && find==FALSE)
{
if(DATA(node)==ptr_data)
{
if(node==*lista)
{
*lista=NEXT(node);
free(node);
}
else
{
NEXT(ant)=NEXT(node);
free(DATA(node));
free(node);
}
find=TRUE;
}
else
{
ant=node;
node=NEXT(node);
}
}
return;
}
nota :
so elimina o primeiro elemento gostava de eliminar qualquer um.~
muito obrigado.