011
26.01.2004, 06:44 Uhr
(un)wissender
Niveauwart
|
@ Spacelord Genau! (Namen sind Schall und Rauch!)
@ Flosoft Also doch ANSI
@CAD Ich beibe dabei, dein Code macht (für mich) kein Sinn, zumindest nicht in diesen Schnipseln, was tust du da überhaupt??! Vor Array per value zurückgeben keine Spur, du hast einen Methode, die einen Pointer zurückgibt und dann schreibst du irgendwo new.
Und wenn du schon ein Array kopieren willst, dann wohl auch mit memcpy, oder?
Wenn du alles zusammen baust mit kopieren der Elemente, dann haste das mit per value, zumindest ungefähr.
Bearbeitung: |
Und natürlich kannst du vor m_oaArray das & weglassen (du musst es sogar)! Schließlich ist m_oaArray schon ein Pointer, und die Adressen eines Pointer ist dann Pointer**. Aber die Benutzung von Pointern und Referenzen sollte ja klar sein...
Ein kleines dreckiges Beispiel, die Meldung ist, wie erwartet: cannot convert int** to int*.
C++: |
#include <iostream>
int* pointer;
int* test();
int main() { pointer = new int; std::cout << pointer << "\n"; std::cout << test() << "\n"; delete pointer; return 0; }
int*test() { return &pointer; }
|
So würde es gehen, aber das hast du nicht geschrieben:
C++: |
#include <iostream>
int* pointer;
int* test();
int main() { pointer = new int[10]; std::cout << pointer << "\n"; std::cout << test() << "\n"; delete [] pointer; return 0; }
int*test() { return &pointer[0]; }
|
|
-- Wer früher stirbt ist länger tot. Dieser Post wurde am 26.01.2004 um 06:59 Uhr von (un)wissender editiert. |