next up previous
Next: Call by Reference I Up: Pointer Puzzles Previous: Call by Pointer Reference

Pass by Pointer Reference

int *add(int a,int b)
{
    int result;
    result =a+b;
    return &result;
}

main()
{
    int *sum;
    sum=add(3,8);
    cout << *sum << endl;
}

FALSCH, Programm compiliert,
kann aber bei der Ausführung abstürzen.
result ist eine lokale Variable! Nach Verlassen
der Funktion add() wird dieser Speicherplatz freigegeben!
Compiler:
warning: address of local variable `result' returned


next up previous
Next: Call by Reference I Up: Pointer Puzzles Previous: Call by Pointer Reference

© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 3/19/1998