je voulais savoir pourquoi on utilise préférentiellement des fonctions qui retournent et utilisent des pointeurs sur structure plutôt que des structures elles-mêmes.
Si je ne dis pas de bêtise c'est dû aux typedef que tu as mis dans ton .h. Quand tu fais "pTREENODE" dans ton .c ca signifie que "ptn" est de type "struct treenode*". Si tu ne veux pas renvoyer de structure il faut faire : "struct treenode ptn" par exemple.
Comme toujours, je m'insurge contre le fait de masquer un pointeur derrière un typedef. Je trouve que pour la (re)lecture / correction d'un programme (par le programmeur ou un collègue plus tard, ou ici sur le site par exemple), c'est fatiguant. Mais bon....
Mais ton incompréhension vient bien, comme le dit Shirô, de la mauvaise utilisation de tes typedef.... comme quoi....
Ou alors, de ta mauvaise compréhension de ce qu'est un pointeur. Et je parie que tu n'as pas de warning lors de la compilation de ces deux fonctions....
A+
Edgar;
- Edité par edgarjacobs 27 mars 2015 à 1:01:37
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Mais ton incompréhension vient bien, comme le dit Shirô, de la mauvaise utilisation de tes typedef.... comme quoi....
Non, il a très bien compris qu'il renvoie des pointeurs puisque:
pegase1618 a écrit:
pourquoi les fonctions createTreeNode et createCharacter renvoient des pointeurs de structure pTREENODE et pCHARACTER et pas simplement des structures TREENODE et CHARACTER.
Ce qu'il veut savoir c'est pourquoi on renvoi des pointeurs sur structure, et pas juste la structure! Je pense d'une part que c'est pour minimiser les copies de structure (tout se passe par copie) et cela coûte moins cher de faire une copie d'un pointeur que une copie d'une structure.
Également, dans le cadre de liste (ou arbre) le compilateur ne pourrait pas créer une structure de type:
Merci à tous pour vos réponses. J'ai longuement chercher une explication hier et après quelques heures de recherche (quand même ^^) j'en suis arrivé aux mêmes conclusions que la réponse de Breizhbugs: en fait, si on nous propose de faire cela, c'est simplement que ça permet d'éviter de faire des copies de structures dans les fonctions qui sont beaucoup plus gourmandes en stockage que des pointeurs sur structure. Merci encore d'avoir pris la peine de me répondre.
@breizhbugs @pegase1618: au temps pout moi: je n'ai pas compris la demande. Sorry.
Edgar;
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Pointeurs de structure
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent