en fait, ce qui doit se passer .. c'est que quand tu sors de ta fonction 'fonction', le pointeur var pointe tjrs sur son ancienne adresse.
donc il faut que tu l'obliges à pointer vers la nouvelle.
maintenant je suis pas sur .. il est tot la e
essaye:
void main(void)
{
char *var=NULL;
var = fonction();
...
}
char* fonction()
{
char *ptr = new char[10];
//blabla
return ptr;
}
ou sinon il faut peut etre faire un pointeur de pointeur et tu n'auras plus le probleme.
void main(void)
{
char **var=NULL;
fonction(var);
....
fonction(char **var)
{
*var = new char[10];
// blabla
}
là l'adresse de base du double pointeur ne changera pas et donc sera connue n'importe où que ce soit dans le main ou dans fonction.. ce qui n'est pas le cas quand tu utilises juste un pointeur
maintenant je peux me tromper j'ai rien testé là .. et il est tot ;-)