Fonction get_first/violation de lecture
api08
Messages postés
41
Statut
Membre
-
Kalimero -
Kalimero -
slt,
je fais un programme sur les liste chainé lors d'execution ce message apparait:
Unhandled exception at 0x01303aeb in liste.exe: 0xC0000005: Access violation reading location 0x00000008.
voila le prog:
typedef struct _Dliste {
struct _Dliste *next;
struct _Dliste *prev;
void * info;
}Dliste;
Dliste* get_first(Dliste* ref)
{
if(ref==NULL)
return NULL;
while(ref->prev!=NULL)
ref=ref->prev;
ref->next=ref;
return ref;
}
main()
{
int a,b,c,d;
Dliste* trouve;
Dliste*ref=NULL;
a=1;
b=2;
c=3;
d=4;
ref=node_create(a);
printf("%d\n",ref->info);
add_tail(ref, b);
add_tail(ref, c);
add_tail(ref, d);
printf("b=%d\n",ref->info);
if(ref==NULL)
printf("faux");
while(ref!=NULL)
{
printf("%d\n",ref->info);
ref=ref->next;
}
trouve = get_first(ref);
printf("trouve= %d\n",((int)trouve->info));
system("PAUSE");
}
merci
je fais un programme sur les liste chainé lors d'execution ce message apparait:
Unhandled exception at 0x01303aeb in liste.exe: 0xC0000005: Access violation reading location 0x00000008.
voila le prog:
typedef struct _Dliste {
struct _Dliste *next;
struct _Dliste *prev;
void * info;
}Dliste;
Dliste* get_first(Dliste* ref)
{
if(ref==NULL)
return NULL;
while(ref->prev!=NULL)
ref=ref->prev;
ref->next=ref;
return ref;
}
main()
{
int a,b,c,d;
Dliste* trouve;
Dliste*ref=NULL;
a=1;
b=2;
c=3;
d=4;
ref=node_create(a);
printf("%d\n",ref->info);
add_tail(ref, b);
add_tail(ref, c);
add_tail(ref, d);
printf("b=%d\n",ref->info);
if(ref==NULL)
printf("faux");
while(ref!=NULL)
{
printf("%d\n",ref->info);
ref=ref->next;
}
trouve = get_first(ref);
printf("trouve= %d\n",((int)trouve->info));
system("PAUSE");
}
merci
A voir également:
- Fonction get_first/violation de lecture
- Fonction si et - Guide
- Accusé de lecture gmail - Guide
- Confirmation de lecture whatsapp - Guide
- Lecture epub sur pc - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
2 réponses
bonjour,
2 choses :
- Est-ce que dans ta fonction "node_create" tu penses bien à mettre tes pointeurs next et prev à NULL ? C'est surment de là que vient ta violation d'access.
- Dans ta fonction get_first, pourquoi mettre la ligne "ref->next = ref;", celà génère une grosse fuite mémoire si les cellules suivantes ne sont pas libérées.
2 choses :
- Est-ce que dans ta fonction "node_create" tu penses bien à mettre tes pointeurs next et prev à NULL ? C'est surment de là que vient ta violation d'access.
- Dans ta fonction get_first, pourquoi mettre la ligne "ref->next = ref;", celà génère une grosse fuite mémoire si les cellules suivantes ne sont pas libérées.