Bonjours, je n'arrives pas à définir une fonction qui retourne un tableau de pointeurs de structures.
Normal, une fonction ne peut pas retourner un tableau. Tout ce qu'elle
peut faire c'est retourner l'adresse du premier élément du tableau.
T* f (params ... )
évidemment, il manque une information sur la taille ou le nombre d'éléments...
Il est recommandé d'utiliser une structure :
struct array { T *p; size_t n; };
que l'on peut retourner
struct array f (params ... )
ou dont on peut passer l'adresse...
int f (struct array *p)
La fonction se charge de remplir les champs...
-- A+
Emmanuel Delahaye
Marc Boyer
Le 30-03-2006, Peyroux a écrit :
Bonjours, je n'arrives pas à définir une fonction qui retourne un tableau de pointeurs de structures.
Hormis le fait, comme signalé par Emmanuel, qu'on ne peut pas retourner un tableau, mais qu'on peut retourner un pointeur sur un tableau, ou un pointeur sur son premier élément, ou une structure contenant un tableau, voici une solution (brute).
Mais si tu veux faire plus clair, on peut aussi faire typedef pS* S; // pointeur sur S
pS* bar(void);
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. Paul Éluard)
Le 30-03-2006, Peyroux <peyroux@gmail.com> a écrit :
Bonjours, je n'arrives pas à définir une fonction qui retourne un
tableau de pointeurs de structures.
Hormis le fait, comme signalé par Emmanuel, qu'on ne peut
pas retourner un tableau, mais qu'on peut retourner un pointeur
sur un tableau, ou un pointeur sur son premier élément, ou
une structure contenant un tableau, voici une solution (brute).
Bonjours, je n'arrives pas à définir une fonction qui retourne un tableau de pointeurs de structures.
Hormis le fait, comme signalé par Emmanuel, qu'on ne peut pas retourner un tableau, mais qu'on peut retourner un pointeur sur un tableau, ou un pointeur sur son premier élément, ou une structure contenant un tableau, voici une solution (brute).