Cette question est juste pour ma meilleure compréhension des variables statiques en C++.Renvoyer la référence à la variable locale statique en C++
Je pensais pouvoir renvoyer une référence à une variable locale en C++ si elle était déclarée statique car la variable devrait être active après le retour de la fonction. Pourquoi ça ne marche pas?
#include <stdio.h>
char* illegal()
{
char * word = "hello" ;
return word ;
}
char* alsoNotLegal()
{
static char * word = "why am I not legal?" ;
return word ;
}
int main()
{
// I know this is illegal
//char * ill = illegal();
//ill[ 0 ] = '5' ;
//puts(ill) ;
// but why is this? I thought the static variable should "live on" forever -
char * leg = alsoNotLegal() ;
leg[ 0 ] = '5' ;
puts(leg) ;
}
Juste pour que vous sachiez que ce sont des pointeurs, pas des références. – Zifre