Erreur de segmentation en C
Fermé
trita
-
28 oct. 2008 à 15:51
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 28 oct. 2008 à 17:11
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 28 oct. 2008 à 17:11
A voir également:
- Erreur de segmentation en C
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur de segmentation (core dumped) ✓ - Forum Programmation
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
5 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
28 oct. 2008 à 16:22
28 oct. 2008 à 16:22
Donc tu fais:
Ce qui signifie:
Tu es en train d'assigner une valeur dans un pointeur qui ne pointe nulle part, non initialisé.
Au passage il vaut mieux utiliser typedef que #define pour créer un type.
Rectangle rectangleInit(int i) { Rectangle rectangle; rectangle->couleur=i; return rectangle; }
Ce qui signifie:
struct RectangleP * rectangleInit(int i) { struct RectangleP * rectangle; rectangle->couleur=i; return rectangle; }
Tu es en train d'assigner une valeur dans un pointeur qui ne pointe nulle part, non initialisé.
Au passage il vaut mieux utiliser typedef que #define pour créer un type.
d'accord je comprend pourquoi ça ne marche pas, evidement si je pointe nulle part ... mais comment initialiser mon rectangle alors ?
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
28 oct. 2008 à 16:56
28 oct. 2008 à 16:56
Avec la fonction malloc:
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16595-lallocation-dynamique
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/16595-lallocation-dynamique
je fais une malloc sur quoi alors ?
sur la couleur ? int couleur = malloc(sizeof(long)) ?
parsque une malloc sur la structure Rectangle complete je vois pas comment faire ...
merci de m'aider ...
sur la couleur ? int couleur = malloc(sizeof(long)) ?
parsque une malloc sur la structure Rectangle complete je vois pas comment faire ...
merci de m'aider ...
ah si c'est bon j'ai trouvé !!!
si je fais Rectangle rectangle = malloc(sizeof(long)) ça marche !
merci bien !!
si je fais Rectangle rectangle = malloc(sizeof(long)) ça marche !
merci bien !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
28 oct. 2008 à 17:11
28 oct. 2008 à 17:11
Ah non!
Tu alloues de la place pour un rectangle, pas pour un entier long!
Tu alloues de la place pour un rectangle, pas pour un entier long!
struct RectangleP *p = (struct RectangleP *) malloc(sizeof(struct RectangleP)) ;