Process terminated with status -1073741819
Résolu/Fermé
A voir également:
- Process terminated with status -1073741510
- Tray status - Télécharger - Divers Utilitaires
- Process explorer windows - Télécharger - Informations & Diagnostic
- Process hacker download - Télécharger - Divers Utilitaires
- Hidden process finder - Télécharger - Confidentialité
- Process lasso - Télécharger - Utilitaires
3 réponses
bsr loupius,j'ai resolé mon probleme:j'ai ajouter dns dépiler linst (*):
....
p2=p->suiv;
free(p);<-----------(*)
p=p2;
avant quand je depile je libere pas lespace occupé par l elt depiler;
bon le but de mon pgm c'est generer les itemset frequents (domaine de fouille de données 'data mining') (voila un site specialisé <fimi.cs.helsinki.fi>)
donc je fait appele a toute personne qui sinteresse a ce teme(qui est un teme de recherche) ou qui a connaissance en pgrammation c sous unix(car il faut que j'execute mon pgm sous unix pour le comparai avc dautre pgm comme apriori par ex)de bien vouloir me contacter j'ai besoin daide
merci-aurevoir
....
p2=p->suiv;
free(p);<-----------(*)
p=p2;
avant quand je depile je libere pas lespace occupé par l elt depiler;
bon le but de mon pgm c'est generer les itemset frequents (domaine de fouille de données 'data mining') (voila un site specialisé <fimi.cs.helsinki.fi>)
donc je fait appele a toute personne qui sinteresse a ce teme(qui est un teme de recherche) ou qui a connaissance en pgrammation c sous unix(car il faut que j'execute mon pgm sous unix pour le comparai avc dautre pgm comme apriori par ex)de bien vouloir me contacter j'ai besoin daide
merci-aurevoir
Il est probable comme trop souvent qu'il s'agisse d'un problème de pointeur.
Je vais avoir du mal à t'aider car on a pas tout le code (que font les fonctions comme 'sommet', 'empiler', 'depiler', ...).
Après un appel à 'malloc': p1=(cellule*)malloc(sizeof(cellule));, il faut toujours tester la valeur de retour; si elle est nulle c'est que le tas est plein (et pas la pile qui se remplit des appels à sous-programme, des interruptions ou des variables locales)?
Pour trouver l'erreur, il y a principalement la méthode du débugger et la méthode du 'printf'. On peut afficher la valeur du pointeur par: printf ("p1 = %p\n", p1);
NB: ne pas hésiter à utiliser la balise de code se trouvant en haut et à gauche de la zone de texte entre la balise 'sousligné' et la balise 'lien'.
Je vais avoir du mal à t'aider car on a pas tout le code (que font les fonctions comme 'sommet', 'empiler', 'depiler', ...).
Après un appel à 'malloc': p1=(cellule*)malloc(sizeof(cellule));, il faut toujours tester la valeur de retour; si elle est nulle c'est que le tas est plein (et pas la pile qui se remplit des appels à sous-programme, des interruptions ou des variables locales)?
Pour trouver l'erreur, il y a principalement la méthode du débugger et la méthode du 'printf'. On peut afficher la valeur du pointeur par: printf ("p1 = %p\n", p1);
NB: ne pas hésiter à utiliser la balise de code se trouvant en haut et à gauche de la zone de texte entre la balise 'sousligné' et la balise 'lien'.
Bjr,merci loupius pr ta reponse.j'ai fait se que tu ma dit,en effet il s'agit d'un problème de pointeur.
voila kesk ma donné l'execution:
pile empiler(pile p,arbre b){
pile p1;
printf(" p1= %p ",p1);
p1=(cellule*)malloc(sizeof(cellule));
printf("*p1= %p\n",p1);
p1->v=b;
p1->suiv=p;
return p1;
}
...
p1=0000000E *p1=7F6EFFD8
p1=7F6EFFD8 *p1=7F6EFFE8
p1=7F6EFFE8 *p1=7F6EFFF8
p1=7F6EFFF8 *p1=00000000/*mon pbm est là*/ /*le pointeur est arrivé a sa valeur max?*/
Il faut faire quoi pr eviter se pbm?
voila kesk ma donné l'execution:
pile empiler(pile p,arbre b){
pile p1;
printf(" p1= %p ",p1);
p1=(cellule*)malloc(sizeof(cellule));
printf("*p1= %p\n",p1);
p1->v=b;
p1->suiv=p;
return p1;
}
...
p1=0000000E *p1=7F6EFFD8
p1=7F6EFFD8 *p1=7F6EFFE8
p1=7F6EFFE8 *p1=7F6EFFF8
p1=7F6EFFF8 *p1=00000000/*mon pbm est là*/ /*le pointeur est arrivé a sa valeur max?*/
Il faut faire quoi pr eviter se pbm?
C'est bizzare... ce n'est pas trois appels à malloc qui remplit le tas....
Bizzare aussi ton écriture:
Je n'ai pas assez d'élément pour te répondre... et puis le peu de code que l'on a n'est pas indenté, c'est pénible à lire.
Bizzare aussi ton écriture:
pile p1; p1=(cellule*)malloc(sizeof(cellule));j'aurais plutôt écrit:
pile p1; p1=(pile)malloc(sizeof(pile));Mais 'pile', c'est quoi? un 'typedef'? une classe?
Je n'ai pas assez d'élément pour te répondre... et puis le peu de code que l'on a n'est pas indenté, c'est pénible à lire.