001
26.08.2003, 13:31 Uhr
virtual
Sexiest Bit alive (Operator)
|
Du machst einen Call by value, du brauchst aber einen Call by reference:
C++: |
int funkt(int*& pointer) ...
|
Pointer its ein Zeiger. Bei deiner Version wird eine Kopie dieses Zeigers auf den Stack gelegt und dann funkt aufgerufen. funkt selbst verändert dieseKopie zwar, aber wenn funkt verlassen wird, geht die Kopie und damit die Änderung verloren. Daher muß du es hinbekommen, daß main nicht eine Kopie, sondern das Original übergibt. Das geht mit Referenzen, also dem Ampersand, was ich oben hinzugefügt habe.
Davon abgesehen solltest du in main noch am Ende ein delete[] pointer spendieren, -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |