Witam,
Moim pytaniem-problemem jest zwrot wskaźnika. Chodzi o to że mając np stos muszę go zaopatrzeć w funkcje zdejmującą element. I teraz taka przykładowa funkcja kończy się tak:
.
.
.
Element *P = HEAD;
HEAD = HEAD->next;
delete HEAD;
return &P->dane;
}
Uogólniając pod koniec funkcji zwracamy wskaźnik na jakąś daną która (chyba) nie powinna już istnieć bo międzyinnymi zwolniliśmy jej pamięć operatorem delete. Później za pomocą zwracanego wskaźnika dajmy na to wypiszemy jej wartość.
cout << *(Funkcja()) << endl;
I teraz taki przykład znalazłem taki "zabieg" w książce "thinking in C++" str 204 (funkcja pop()), nie będę ukrywał że fakt iż to działa bardzo mnie zdumiał. Jednak spróbowałem napisać coś podobnego:
#include <iostream>
using namespace std;
char *Wskfun();
int main(){
char *j = Wskfun();
cout << j << endl;
system("PAUSE");
return 0;
}
char *Wskfun(){
char *A = new char[] = "awdawdd";
delete []A;
return A;
}
No i tu już zwiecha ... Czy ktoś może mi wytłumaczyć dlaczego tak się dzieje ?