retourner... - C++ - Programmation
Marsh Posté le 22-07-2003 à 21:53:29
1) allocation dynamique avec malloc et retourner un pointeur
2) encapsuler le tableau dans une structure et retourner une structure
Marsh Posté le 22-07-2003 à 22:25:20
Code :
|
Marsh Posté le 22-07-2003 à 22:29:07
VisualC_n3T a écrit :
|
tu te calmes avec ton code C++ et qui passe meme pas la vérification synthaxique?
Marsh Posté le 23-07-2003 à 05:52:27
nabrouska a écrit : j'ai une fonction qui contien une variable |
Faudrait deja voir pourquoi ce char[] se trouve uniquement dans un niveau inferieur alors que visiblement on en a besoin au-dessus.
Marsh Posté le 23-07-2003 à 07:27:13
Angel_Dooglas a écrit : |
probablement pour la même raison qui fait qu'il ne sait pas comment la retourner...
Marsh Posté le 23-07-2003 à 15:18:22
Ou alors il reste la version "porc feignant" : retourner un pointeur vers le tableau static local...
(pas taper !!)
Marsh Posté le 23-07-2003 à 17:11:04
leneuf22 a écrit : Ou alors il reste la version "porc feignant" : retourner un pointeur vers le tableau static local... |
ça n'a rien que mal en soit, mais les debutants ne mesurent pas tout ce que ça implique, don c'est un mauvais conseil pour eux
Marsh Posté le 23-07-2003 à 21:52:02
nabrouska a écrit : j'ai une fonction qui contien une variable |
le pb c est que comme ta variable a été déclarée dans la fonction (si c est le cas) , celle-ci n existe qu a l interieur de ta fonction et a la sortie de ta fonction, elle n existe plus. Donc pour retourner la valeur, tu es obligé de "dupliquer" dynamiquement ta variable (ton tableau je devrai dire) ce qui n est pas forcement top.
Il serait mieux comme l a proposé je sais plus qui(desolé j ai la flemme de remonter ) au dessus, de declarer ton tableau en dehors de ta fonction - soit statiquement, soit dynamiquement- puis de t en servir dans la fonction ou mieux, de le passer en parametre de ta fonction.
Marsh Posté le 23-07-2003 à 23:04:00
On va le dire plus clairement cette fois (vu que l'auteur du topic c'est evanoui dans la nature).
La manoeuvre qu'il veut effectuer ne va pas produire du code potable (dans la logique de construction et a la maintenance).
Alors:
1/Il n'a pas suffisament bien pense son programme et dans ce cas vos conseils de syntaxe sont tres sympathiques et vont lui permettre de pondre du code imbitable.
2/Il a retourne le probleme dans tous les sens et il lui faut absolument proceder de cette maniere et dans ce cas il vaut mieux privilegier une declaration globale (de pointeur pour futur tableau/chaine en dynamique s'il le faut), ce qui va probablement obscurcir le code, mais vu que cette manoeuvre doit etre "exceptionnelle" ou en tout cas entourer de grosses precautions...
Marsh Posté le 24-07-2003 à 11:30:25
++Taz a écrit : ça n'a rien que mal en soit, mais les debutants ne mesurent pas tout ce que ça implique, don c'est un mauvais conseil pour eux |
Oui, sauf dans des cas très rares ou utiliser cette méthode peut être recommandé si on écrit une librairie... je pense à la librairie standard du C avec ctime() par exemple, ce qui facilite le travail du codeur qui va utiliser la lib, et qui ne doit pas se soucier de son mécanisme interne.
Marsh Posté le 24-07-2003 à 15:21:19
leneuf22 a écrit : |
ce n'est pas du tout rare, je me sert de ce genre de chose et renvoie des référecens/pointeurs à des variables statis de fonction dans de tres nombreux cas.
Marsh Posté le 02-08-2003 à 19:35:09
VisualC_n3T a écrit :
|
pourquoi * dans le return ?
x est un char*, donc return x
Marsh Posté le 02-08-2003 à 20:03:27
leneuf22 a écrit : Ou alors il reste la version "porc feignant" : retourner un pointeur vers le tableau static local... |
Marsh Posté le 03-08-2003 à 06:15:52
nabrouska a écrit : j'ai une fonction qui contien une variable |
Retourner le tableau et pas te faire chier avec les détail, le GC s'en occupe ... Ah on me dit dans mon oreillette que c'est du C ! Bon bah désolé alors, mais va falloir copier sur le tas et spéculer (bah oui, tu sais rarement avec certitude qui a pris une copie du pointeur) sur la date à laquelle tu peux désallouer sans risque.
Marsh Posté le 03-08-2003 à 09:12:09
nraynaud a écrit : Retourner le tableau et pas te faire chier avec les détail, le GC s'en occupe ... Ah on me dit dans mon oreillette que c'est du C ! Bon bah désolé alors, mais va falloir copier sur le tas et spéculer (bah oui, tu sais rarement avec certitude qui a pris une copie du pointeur) sur la date à laquelle tu peux désallouer sans risque. |
tu reprends tes mauvaises habitudes je vois...
Marsh Posté le 22-07-2003 à 21:47:42
j'ai une fonction qui contien une variable
char x[10], je voudrais retourner sa valeur comment faire?
Message édité par nabrouska le 02-08-2003 à 19:36:01