bonjour ,voici mon code ,estce que c'est une situation conforme(c'est juste de retourner un pointeur ?)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 struct list { int i; list * next; } list * func() { list * l; l->i=0; l->next=NULL; return l; }
Version imprimable
bonjour ,voici mon code ,estce que c'est une situation conforme(c'est juste de retourner un pointeur ?)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 struct list { int i; list * next; } list * func() { list * l; l->i=0; l->next=NULL; return l; }
Pointeur non initialisé !Code:list * l;
Faut cliquer dans l'interface pour avoir les balises de code :D
bonjour ,voici mon code ,estce que c'est une situation conforme(c'est juste de retourner un pointeur ?)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 struct list { int i; list * next; } list * func() { list * l; l=new list(); l->i=0; l->next=NULL; return l; }
Salut,
Tant que la lisibilite du code n'est pas diminuee et que tu fais tres attention aux pointeurs fous et a la fuitre de memoire, ca ne gene pas.
Fais attention : le pointeur l n'est pas detruit. Il faudra que tu le fasse plus tard. Je te conseille donc de coder un destructeurCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 struct list { int i; list * next; } list * func() { list * l=new list(); l->i=0; l->next=NULL; return l; }
merci, donc lorsque j'appelle la fonction func je peut recuperer la list ?
la fct fun te renvoie un pointeur sur une liste. Pour recuperer la liste, tu dois faire
et donc la lisibilite du code diminue...Code:
1
2 *l
Si tu veux recuperer ensuite l'entier i tu va devoir faire
alors que le plus "simple" serait quand memeCode:
1
2 l->i ou (*l).i
non ?Code:
1
2 l.i
Mais por bien repondre a ta question, apres ta fct fun, tu peux recuperer la liste
En C++ on va plutôt donner une sémantique de valeur à une liste => pas de retour de pointeur, mais par recopie -- ou encore faire des trucs plus compliqués.
Si c'est pour du code de production, utilise plutôt std::list.