Je me retrouve face à un problème de retour d'un pointeur en paramètre d'une fonction lors de sa modification.
Voilà un exemple:
Tout se déroule comme prévu dans mastructure.c mais une erreur se produit à la fin de l'éxécution de fonction1, soit donc au moment du retour à moncode.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /*----------------------------------------------------------------*/ mastructure.c struct ma_structure { ... } int fonction1( * ma_structure); /* ne modifie pas ma_structure mais fait appel à fonction2 */ int fonction2( * ma_structure); /* modifie la structure */ /*----------------------------------------------------------------*/ #include 'mastructure.h' moncode.c int fonction3(...) { struct ma_structure * Tab; Tab = calloc(10,sizeof(struct ma_structure)); /* pointeur sur un espace de la taille de 10 structure */ fonction1(Tab); /* envoi du pointeur en paramètre de fontion 1 désignant (sans appel antérieur) le premier élément du tableau de structure */
Je saisis mal comment modifier un paramètre d'une fonction malgré de longue lecture et application sur le sujet.
L'utilisation de pointeurs devrait résoudre pas mal de problèmes mais il me manque quelquechose...
Serait-t-il plus judicieux de faire rendre aux fonctions 1 et 2 des pointeurs sur les structures? Cette solution doit fonctionner mais ne doit pas être compatible avec la déclaration d'un tableau de structure?
Meci d'avance.
Partager