A voir également:
- Renvoie de tableau par valeur d'une fonction
- Tableau word - Guide
- Fonction si et - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
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
ou
Mais tu masques de l'information sur ce que devrait contenir "point". C'est une affaire de style.
Dal
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?
Dal
J'ai pas mal modifier mon code mais j'ai quand même appris pas mal de mes erreurs ^^