Salut,
Pas sûr d'avoir compris, mais ce qu'il ne faut jamais faire, c'est ça :
Code C/C++ :
#include <stdio.h>
char* Test()
{
char nResult;
nResult = 'a';
return &nResult;
}
int main()
{
printf("%c\n", *Test());
return 0;
}
Car nResult cesse d'exister après l'appel à Test, donc tu pointes sur n'importe quoi. Par contre tu peux définir ta variable comme statique. Mais à ce moment là la fonction n'est plus thread safe...
Code C/C++ :
#include <stdio.h>
char* Test()
{
static char nResult;
nResult = 'a';
return &nResult;
}
int main()
{
printf("%c\n", *Test());
return 0;
}
Donc c'est valide, c'est mieux, mais c'est pas encore parfait... Pour faire mieux faudrait voir précisément ce que tu essaies de faire.