A voir également:
- Renvoie de tableau par valeur d'une fonction
- Tableau croisé dynamique - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 7/05/2013 à 14:35
Modifié par [Dal] le 7/05/2013 à 14:35
Salut,
1. lab.c:57: warning: function returns address of local variable
Tu ne peux pas faire "return point;" à la fin de ta fonction alors que "point" est un tableau local à ta fonction.
En faisant cela tu tentes de passer un pointeur vers le premier élément du tableau "point", alors que l'emplacement mémoire occupé par "point" n'est plus alloué.
2. lab.c:99: error: wrong type argument to increment
Tu ne peux pas faire "rect.longueur = rect.longueur++;" car "rect.longueur" est un tableau de 10 entiers. Qu'essayes-tu d'incrémenter ?
3. lab.c:100: error: invalid initializer
Tu ne peux pas faire "int point[4] = PriseDesCoordonnees();" en partie pour les mêmes raisons que celles expliquées en 1. et en partie aussi parce qu'en C, tu ne peux pas utiliser = pour affecter le contenu d'un tableau à un autre tableau.
En C, on ferrait :
puis
Dal
1. lab.c:57: warning: function returns address of local variable
Tu ne peux pas faire "return point;" à la fin de ta fonction alors que "point" est un tableau local à ta fonction.
En faisant cela tu tentes de passer un pointeur vers le premier élément du tableau "point", alors que l'emplacement mémoire occupé par "point" n'est plus alloué.
2. lab.c:99: error: wrong type argument to increment
Tu ne peux pas faire "rect.longueur = rect.longueur++;" car "rect.longueur" est un tableau de 10 entiers. Qu'essayes-tu d'incrémenter ?
3. lab.c:100: error: invalid initializer
Tu ne peux pas faire "int point[4] = PriseDesCoordonnees();" en partie pour les mêmes raisons que celles expliquées en 1. et en partie aussi parce qu'en C, tu ne peux pas utiliser = pour affecter le contenu d'un tableau à un autre tableau.
En C, on ferrait :
int point[4]; PriseDesCoordonnees(point);
puis
void PriseDesCoordonnees(int point[4]) { /* au lieu de int point[4] = { 101, 101, 101, 101 }; */ point[0] = point[1] = point[2] = point[3] = 101; /* suite de ton code */ /* pas de return nécessaire pour que la fonction * appelante obtienne les valeurs de point */ }
Dal
7 mai 2013 à 15:35
ou
Mais tu masques de l'information sur ce que devrait contenir "point". C'est une affaire de style.
Dal
7 mai 2013 à 19:52
Donc en fait je cherche à enregistrer les informations de mon rectangle dans le record en fonction du xeme rectangle que je crée. Si je crée mon 1er rectangle nb_rectangle=1, etc
Je reçois un segmentation fault. Je n'ai pas le droit d'écrire comme cela?
7 mai 2013 à 21:46
Dal
7 mai 2013 à 21:48
J'ai pas mal modifier mon code mais j'ai quand même appris pas mal de mes erreurs ^^