Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Arrays zurückgeben?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
25.01.2004, 22:25 Uhr
Pablo
Supertux
(Operator)


Ja, das ist richtig so, aber Space wollte nun mal wissen, ob es möglich ist, Arrays zurückzugeben und das ist es nicht. Deine wäre die Lösung oder ein Pointer zurückgeben funktioniert auch.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
26.01.2004, 13:14 Uhr
Pablo
Supertux
(Operator)


@wiss: meinst du, CObArray ANSI? Nein, das glaube ich nicht. Ich habe schon gegoogelt und diese CObArray fand ich nur im Benzug MFC, VC++, blabla. Sie war aber nicht in meine ANSI Bücher beschrieben und unter ANSI C/C++ habe ich sie auch nicht gefunden.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
26.01.2004, 14:21 Uhr
(un)wissender
Niveauwart


@Pablo
Lies mal meine Posts genau durch, dann hast du die Antwort!
Schau dir dann vielleicht nochmal Spacelords Post an...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
26.01.2004, 15:02 Uhr
0xdeadbeef
Gott
(Operator)


Diese CObjArray-Geschichte ist ziemlicher Blödsinn. Das Ding gibts nur in C++, und wenn wir eh C++ benutzen, kann man da besser (und typesafe!) std::vector benutzen. Das kriegt inzwischen sogar der Microsoft-Compiler hin.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
26.01.2004, 15:22 Uhr
(un)wissender
Niveauwart



--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: