cs_ToToL
Messages postés170Date d'inscriptionvendredi 25 avril 2003StatutMembreDernière intervention 9 juillet 2008
-
13 oct. 2006 à 15:47
cs_Joky
Messages postés1787Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 janvier 2009
-
13 oct. 2006 à 22:38
Bonjour ,
mon souci est que j'ai besoin de créé une fonction qui
renvoi une chaine de caractère créé en local , et que le résultat
renvoyé soit utilisable directement dans un sprintf. Je ne sai pas
pourquoi mais sa ne veut pas :
DevGizmo
Messages postés122Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention27 février 20071 13 oct. 2006 à 16:03
Hi,
C'est normal ....
Explications: tu as une variable locale a ta fonction; celle ci est sur la pile de l'appel de la fonction jusqu'a ce que tu face un return. Au return de la fonction elle est detruite et donc dans la fonction appellante, tu ne recupere pas tes datas...!
Solution: tu alloue ton tableau dans la fonction, tu retourne le pointeur sur la zone allouee
et dans ta fonction appellante tu fais un free quand tu as termine ...
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 13 oct. 2006 à 21:12
Salut,
Tu peux aussi déclarer toto en static... mais ca peut poser d'autres
problemes (tu ne pourra pas utiliser 2 fois ta fonction dans sprintf,
par exemple).
cs_Joky
Messages postés1787Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 janvier 20092 13 oct. 2006 à 22:38
Tu peux surtout passer ta variable en paramètre
C'est beaucoup plus propre que tous les autres trucs proposés
Au moins pas d'oubli de désallocation etc...