Mouarf, dans l´exemple c´est vrai, une chaine est plus grande que l´autre, mais pas dans mon code.
J´ai trouvé le probleme.
En fait, en voulant ne plus renvoyer ma chaine locale, j´ai voulu renvoyer une chaine entrée en parametre, j´envoyait pas de variable, mais juste une chaine de caracteres.
Ca sera plus clair avec un code :
(CODE PROVOQUANT UN ERREUR)
- include <iostream>
using namespace std;
char* renvoi(char chaine[30]) {
char autreChaine[30] = "...";
strcpy(chaine, autreChaine);
return chaine; }
int main() {
cout << renvoi("salut");
return 0; }
(CODE DIT NORMAL)
- include <iostream>
using namespace std;
char* renvoi(char chaine[30]) {
char autreChaine[30] = "...";
strcpy(chaine, autreChaine);
return chaine; }
int main() {
char chaine[30]="salut";
cout << renvoi(chaine);
return 0; }
Pas super pratique pour renvoyer une chaine, je pense qu´au lieu de renvoyer une chaine, je vais plutot modifier la chaine dans la fonction, et ne rien renvoyer.