Next: Call by Reference I
Up: Pointer Puzzles
Previous: Call 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 |
| © 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 3/19/1998 |