Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2716 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  retourner...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

retourner...

n°465305
nabrouska
Posté le 22-07-2003 à 21:47:42  profilanswer
 

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
mood
Publicité
Posté le 22-07-2003 à 21:47:42  profilanswer
 

n°465309
Taz
bisounours-codeur
Posté le 22-07-2003 à 21:53:29  profilanswer
 

1) allocation dynamique avec malloc et retourner un pointeur
2) encapsuler le tableau dans une structure et retourner une structure

n°465327
VisualC_n3​T
Boolays élevés au grain
Posté le 22-07-2003 à 22:25:20  profilanswer
 

Code :
  1. //1
  2. string tafonction(tesarguments)
  3. {
  4. char x[10];
  5. string sx = x;
  6. return sx;
  7. }
  8. //c'est bon ca non ?
  9. //2
  10. char * tafonction(tesarguments)
  11. {
  12. char * x = new char[10];
  13. return *x;
  14. }
  15. //ca je suis pas sur ;)


---------------
Human Forever
n°465329
Taz
bisounours-codeur
Posté le 22-07-2003 à 22:29:07  profilanswer
 

VisualC_n3T a écrit :

Code :
  1. //1
  2. string tafonction(tesarguments)
  3. {
  4. char x[10];
  5. string sx = x;
  6. return sx;
  7. }
  8. //c'est bon ca non ?
  9. //2
  10. char * tafonction(tesarguments)
  11. {
  12. char * x = new char[10];
  13. return *x;
  14. }
  15. //ca je suis pas sur ;)



tu te calmes avec ton code C++ et qui passe meme pas la vérification synthaxique?

n°465377
Angel_Doog​las
Le dernier des humains
Posté le 23-07-2003 à 05:52:27  profilanswer
 

nabrouska a écrit :

j'ai une fonction qui contien une variable  
char x[10], je voudrais retourner sa valeur comment faire?


 
Faudrait deja voir pourquoi ce char[] se trouve uniquement dans un niveau inferieur alors que visiblement on en a besoin au-dessus.


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°465384
skeye
Posté le 23-07-2003 à 07:27:13  profilanswer
 

Angel_Dooglas a écrit :


 
Faudrait deja voir pourquoi ce char[] se trouve uniquement dans un niveau inferieur alors que visiblement on en a besoin au-dessus.


probablement pour la même raison qui fait qu'il ne sait pas comment la retourner... [:skeye]

n°465892
leneuf22
Posté le 23-07-2003 à 15:18:22  profilanswer
 

Ou alors il reste la version "porc feignant" : retourner un pointeur vers le tableau static local...
 
(pas taper !!)

n°466008
Taz
bisounours-codeur
Posté le 23-07-2003 à 17:11:04  profilanswer
 

leneuf22 a écrit :

Ou alors il reste la version "porc feignant" : retourner un pointeur vers le tableau static local...
 
(pas taper !!)

ç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

n°466147
xilebo
noone
Posté le 23-07-2003 à 21:52:02  profilanswer
 

nabrouska a écrit :

j'ai une fonction qui contien une variable  
char x[10], je voudrais retourner sa valeur comment faire?


 
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 :D ) 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.
 
 
 
 
 
 

n°466221
Angel_Doog​las
Le dernier des humains
Posté le 23-07-2003 à 23:04:00  profilanswer
 

:pfff:  
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...


Message édité par Angel_Dooglas le 23-07-2003 à 23:04:07

---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
mood
Publicité
Posté le 23-07-2003 à 23:04:00  profilanswer
 

n°466632
leneuf22
Posté le 24-07-2003 à 11:30:25  profilanswer
 

++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.

n°466949
Taz
bisounours-codeur
Posté le 24-07-2003 à 15:21:19  profilanswer
 

leneuf22 a écrit :


 
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.

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.

n°475926
jesus_chri​st
votre nouveau dieu
Posté le 02-08-2003 à 19:35:09  profilanswer
 

VisualC_n3T a écrit :

Code :
  1. //2
  2. char * tafonction(tesarguments)
  3. {
  4. char * x = new char[10];
  5. return *x;
  6. }
  7. //ca je suis pas sur ;)




 
pourquoi * dans le return ?
x est un char*, donc return x


---------------
Envie de backuper un DVD en DivX mais vous y connaissez rien ? essayez dvd-ripp : le site de Maxime
n°475955
red factio​n
Posté le 02-08-2003 à 20:03:27  profilanswer
 

leneuf22 a écrit :

Ou alors il reste la version "porc feignant" : retourner un pointeur vers le tableau static local...
 
(pas taper !!)


 
 [:rofl2]  [:rofl2]  [:rofl2]

n°476132
nraynaud
lol
Posté le 03-08-2003 à 06:15:52  profilanswer
 

nabrouska a écrit :

j'ai une fonction qui contien une variable  
char x[10], je voudrais retourner sa valeur comment faire?

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.

n°476135
Taz
bisounours-codeur
Posté le 03-08-2003 à 09:12:09  profilanswer
 

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...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  retourner...

 

Sujets relatifs
macro / vba / ms access 2000 : retourner le numéro de semaine ?[asp+Access] Retourner une information lors d'un insert ?
Retourner un tableaupb pour retourner un objet ....
mysql: komment kon fait pour retourner une valeur par defaut?[HTML] - Image map popup - comment retourner à la ligne ?
Retourner plusieurs résultats d'une fonction[PHP] Pinger une adresse DNS et retourner un gif 'online' ou 'offline'
[C++] retourner un char [][C] Retourner un tableau d'int dans une fonction
Plus de sujets relatifs à : retourner...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)