Logo, du läßt ihn ja das resultat in den Stack (Nirwana) stellen, dort wo die call-parameter stehen Nach dem return sin die wieder weg.

Wirklich elegant (und ergebnisreich) wäre folgendes:

TAB* init_tap(int max)
{
TAB *temp = (TAB*)malloc(blah blah);
temp->max = max;
temp->anzahl = 0;
return(temp);
}

main()
{
TAB *t3 = init_tab(5);

....

mfg robert (es geht natürlich auch mit "Pointer of pointer", aber man sollt nix übertreiben)