J'essais de manipuler des pointeur dans une sorte de liste chaînée mais à chaque fois que je lance mon programme j'obtiens l'erreur 0xC0000005. J'ai lu qu'il s'agissait d'une erreur d'accès à la mémoire, mais la ligne qui pose problème (la 24eme) est exactement la même qu'une précédente (10eme) qui fonctionne.
Lignes 6 et 16, prudence avec fflush(stdin), cela n'est pas portable et peut causer un bug sur certains systèmes.
Lignes 7 et 17, l'utilisation de la fonction gets est aujourd'hui banni, car elle introduit une faille de sécurité dans le programme.
Lignes 9 et 10, et 19 et 24, il est inélégant, et interdit par certaines normes de qualité de code, de définir une variable sans l'initialiser. C'est d'autant plus dommage que les variables sont ici affectées juste après leur définition.
Enfin, tout cela n'est sans doute pas lié à ton bug. S'il y a un crash à l'appel de malloc (ou de free), cela signifie que le programme a corrompu les données en mémoire utilisées par malloc (ou free). Malheureusement, ça a pu arriver n'importe où avant dans l'exécution du programme. Relire attentivement le code serait doute bénéfique. Mais aussi utiliser un outil spécialisé dans la détection de bugs en rapport avec la mémoire, comme Valgrind.
Es-tu sûr de la ligne? tes printf("toto") risquent d'être un mauvais signal (à remplacer à minima par fprintf(stderr,"toto\n"); qui est non bufferisé) Et peux-tu nous fournir la définition des types Etatet Automate ?
Finalement j'ai repris une partie du code et modifier ma façon de faire et tout fonctionne comme il faut !
Merci quand même pour vos réponses, j'en tiendrais compte à l'avenir !
Erreur (0xC0000005)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.