Aller au contenu

Problème de return en C

Featured Replies

Posté(e)

Bonjour,

Mon code a pour but de remplacer toutes les occurences d'une lettre par un nouvel arbre

J'ai un problème avec les return car il sont mal placés.

De plus ,faut'il que je mette *racine =... pour la récursion?

Est ce que quelqu'un pourrait me corriger?

Merci

Modifié par Morpheus75

Posté(e)

Tu es sûr de bien vouloir renvoyer une structure? Et pas un pointeur sur celle ci?

Si tu renvoie une structure, t'étonne pas d'être ejté sur le premier IF.

Posté(e)

Je vois pas trop l'intéret de retourner quoique ce soit d'ailleurs vu que logiquement si tu remplace toutes les occurences tu devrais toujours finir par renvoyer NULL. Le code actuel semble remplacer uniquement la première occurence...

Sinon Arbre c'est une structure ou un pointeur sur une structure?

Posté(e)

Nouveau est vraissemblablement un pointeur (sinon ça ne compile pas...).

(*racine)->lettre <- ça ne compile pas car racine est un Arbre * (et pas un Arbre **)

la première condition n'est pas valide : *racine est un Arbre et ne peut donc pas être NULL (qui est un int). M'est d'avis que c'est (racine == NULL)

du coup, le return est vraissemblablement de type Arbre * (si ce n'est pas le cas, alors tu ne peux pas renvoyer NULL sans transtypage dans ta condition d'arrêt) et est donc racine (et non *racine)

enfin, si on suit cette logique, dans ta branche else, ce sont des racine = modif(...) et non pas *racine. ben oui, modif doit renvoyer un Arbre* et non pas un Arbre

enfin, bref, y a plein de confusions sur les pointeur qui rendent tout le code peu clair :transpi:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.