Pb avec une fonction qui retourne une chaine de caractère

cs_othland Messages postés 298 Date d'inscription jeudi 18 décembre 2003 Statut Membre Dernière intervention 9 février 2010 - 9 mars 2006 à 08:52
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 mars 2006 à 09:06
slt tlm:


j'ai introduit le code suivant:


<code>


char * my_func(........)


{char ch[30];


mon code.....


return(ch);


}


void main()


{ char chaine[30];


chaine=my_func(......);


}


<\code>


il m'affiche l'erreur suivante :


'=' cannot convert from 'char *' to 'char [30]'


There are no conversions to array types


???????????


que dois je faire pour que ça marche??

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 mars 2006 à 09:06
On ne retourne pas un buffer sur pile local à une fonction, il est écrasé par le code suivant en sortie.
Tu ne peux retourner qu'une alloc mémoire.
Le mieux est tout de même de prendre le buffer en param alloué par l'appelant si possible.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous