FORUM Tom's Hardware » Programmation » C / C++ / Java » Déclaration de variables...
 

Déclaration de variables...

Il y a 233 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Déclaration de variables...
 
Wait 'n See
Plus d'informations

Bonsoir, je souhaiterais savoir quand on doit allouer de la mémoire a une varaible locale créée dans une fonction que l'on retourne. Doit on seulement allouer pour retourner un pointeur ou on doit aussi allouer pour un banal type de base? Est ce qu'un type de base renvoyé sans avoir été alloué au préalable mais juste déclarer dans la fonction, et retourné, se fera écraser sur la pile ou non ?
Merci bien!
See ya'

linux grrrr !
Plus d'informations

tu pourrais mettre des bouts de code pour eclaircir ta question ca serait moins prise de tete merci

Profil : Pointeur
Plus d'informations

kan tu renvoy un valeur, il renvoy un copien donc pas d'alocation de memoire
si tu renvoy un pointeur, il fait allouer de la memoire pour eviter  que la valeur ne soit ecrasée.


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Wait 'n See
Plus d'informations

kangol a écrit :

kan tu renvoy un valeur, il renvoy un copien donc pas d'alocation de memoire
si tu renvoy un pointeur, il fait allouer de la memoire pour eviter  que la valeur ne soit ecrasée.


 
 
Merci Beaucoup, c'est exactement ce que je voulais savoir !!
 :hello:

Wait 'n See
Plus d'informations

Et comment ca se passe pour les tableuax ??
Dans mon bouquin, ils disent que si on veut impérativement retourner un tableau d'une fonction on doit la mettre dans une structure ? Pourquoi donc ? Surtout que la structure devrait être allouée non ? voici ce qu'ils me proposent:  
 

Code :
  1. struct s { int y[20];};
  2. ...
  3. struct s f(...){
  4. struct s resultat;
  5. ....
  6. return resultat ;
  7. }


 
Ici, la structure a juste été déclarée dans la fonction et les valeurs de son tableau modifié. Mais pourquoi quand on sortira de la fonction, la structure sera toujours valide et pas perdue ??

Plus d'informations

Parce qu'il renvoie une copie de ta structure.
Mais c'est assez crade de renvoyer des structures, vaut mieux renvoyer un pointeur vers une structure (allouée dans ta fonction).


Message édité par Jul pa le 14-05-2003 à 13:48:42
Wait 'n See
Plus d'informations

Jul PA a écrit :

Parce qu'il renvoie une copie de ta structure.
Mais c'est assez crade de renvoyer des structures, vaut mieux renvoyer un pointeur vers une structure (allouée dans ta fonction).


 
Oui oui je sais qu'il faut plutot travailler sur des poiteurs sur structure c'est juste que j'ai recopie l'exemple tel quel du livre. Je ne savais pas que la structre etait recopiee. Meric beaucoup.


---------------
See Ya'

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » C / C++ / Java » Déclaration de variables...
 

Annonces Google
Publicité
Les ressources relatives