J'ai écrit un programme rapide qui exécute chaque instruction avant de donner une erreur de faute de seg.Erreur de fin à la fin du programme après avoir exécuté tout?
struct foo
{
int cat;
int * dog;
};
void bar (void * arg)
{
printf("o hello bar\n");
struct foo * food = (struct foo *) arg;
printf("cat meows %i\n", food->cat);
printf("dog barks %i\n", *(food->dog));
}
void main()
{
int cat = 4;
int * dog;
dog = &cat;
printf("cat meows %i\n", cat);
printf("dog barks %i\n", *dog);
struct foo * food;
food->cat = cat;
food->dog = dog;
printf("cat meows %i\n", food->cat);
printf("dog barks %i\n", *(food->dog));
printf("time for foo!\n");
bar(food);
printf("begone!\n");
cat = 5;
printf("cat meows %i\n", cat);
printf("dog barks %i\n", *dog);
// return 0;
}
qui donne un résultat de
cat meows 4
dog barks 4
cat meows 4
dog barks 4
time for foo!
o hello bar
cat meows 4
dog barks 4
begone!
cat meows 5
dog barks 5
Segmentation fault (core dumped)
Je ne suis pas vraiment sûr pourquoi il segmente les défauts à la fin? Tous les commentaires/idées sont profondément appréciés.
, pourriez-vous me parler des autres problèmes (surtout celui sur le paramètre void * parce que je suis l'utiliser très souvent). Merci beaucoup! –
le serait aussi struct foo * food = malloc (sizeof (struct foo)); food = (struct foo *) arg; dans la fonction de barre? parce que je reçois toujours une erreur de segmentation. –
oh attendez stupide stupide cela fonctionne. Merci beaucoup!! –