Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » adressübergabe an funktion

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
13.01.2004, 14:35 Uhr
virtual
Sexiest Bit alive
(Operator)


Also noch mal zur erklärung mit den Sternchen:

Wenn Du ein

C++:
int a[2][3]


Hast, dann ist a ein zusammenhängender Speicherblock, in dem du Platz für 2*3 ints hast. Die verschienden Dimensionen spielen dabei keine Rolle. daher Sprichst Du das Array mit hilfe von int* an.
In meinem Post bin ich davon ausgegangen, daß Das Array immer die gleichen dimansionen hat; wenn nicht dann mußt du - wie du es ja schon gemacht hast, die Dimensionen noch zusätzlich als parameter übergeben:

C++:
void matrixausgabe(double* matrix, unsigned int sizex, unsigned int sizey) // nur ein "*"!!!


Die Informationen, daß matrix ein 2D Array ist, geht bei der Übergabe verloren. matrix ist einfach ein Speicherbereich, in dem sizex*sizey Elemente Platz haben. Daher mußt Du in Deiner Funktion den Kram dann wieder per Hand auseinanderklamüsern:

C++:
   unsigned int x,y;

    for (y=0;y<sizey; y++)
    {
        for (x=0; x<sizex; x++)
        {
        [b]cout<<matrix[x+sizex*y];[/b]
        }
        cout<<endl;
    }


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
13.01.2004, 14:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ein array fängt bei 0 an und hört bei N-1 auf...
probiers mal damit...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
13.01.2004, 14:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@virtual

Zitat:

Hast, dann ist a ein zusammenhängender Speicherblock, in dem du Platz für 2*3 ints hast. Die verschienden Dimensionen spielen dabei keine Rolle. daher Sprichst Du das Array mit hilfe von int* an.


das wusste ich gar nicht..., vermutlich weil ich fast nie 2d-arrays nutze und wenn dann doch immer dynamisch allokiere...
ist ja meiner meinung noch ein grund mehr gleich bei 1d-arrays zu bleiben oder wie siehst du das?
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 13.01.2004 um 14:42 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
13.01.2004, 14:48 Uhr
~nubi
Gast


ok jetz hab ichs
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
13.01.2004, 14:53 Uhr
virtual
Sexiest Bit alive
(Operator)


Wenn Du dynamische Arrays verwendest: ja, dann bleib bei 1D arrays.
Sind sie aber statisch, dann machts keinen sinn, auf 1D arrays zu wechseln.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
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: