Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Arrays & Funktionen

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 <
000
23.05.2003, 19:38 Uhr
Taz



Momentan steh ich vor einem neuen Problem, das sich schon wieder um Arrays dreht.

Wie kann ich aus einer Funktion ein zweidimensionales Array an das Hauptprogramm übergeben? Hab bis jetzt noch nichts brauchbares zu dem Thema gefunden.

Thx Taz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.05.2003, 23:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Zeige Code. Wenn Du sowas machen willst:

C++:
void f(int char[][])
{
...
}


Nein: geht nicht, weil Du max. eine Arraydimension unbekannt lassen darfst.
--
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
002
25.05.2003, 22:37 Uhr
ao

(Operator)



Zitat:
virtual postete
Zeige Code. Wenn Du sowas machen willst:

C++:
void f(int char[][])
{
...
}


Nein: geht nicht, weil Du max. eine Arraydimension unbekannt lassen darfst.



Doch, es geht:


C++:
void f(int ** ppArray, int DimX, int DimY)
{
/* hier zugreifen auf ppArray [x][y] */
}



ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.05.2003, 08:09 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja, klar, mit Pointern gehts.
Edit: Ergänzung, um es deutlicher zu machen:
Allerdings ist int** was anderes als ein Zwei Dimensionales Array: Bei einem int a[10][10] Ist der Speicher flach organisiert, dh a zeigt af den Anfang und danach kommen 100 ints. bei int** a ist a ein Zeiger, welcher auf einen Zeiger zeigt. Hat für Die Programmierung zum Effekt, daß

C++:
void f(int** a)
{
}


Nicht aufrufbar ist mit

C++:
int a[10[10];
f(a);


Weil inkompatible Typen
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 26.05.2003 um 10:45 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.11.2003, 01:40 Uhr
kronos
Quotenfisch
(Operator)


hi!
der thread ist zwar uralt, aber er trifft genau mein problem.

Zitat:
virtual postete
Hat für Die Programmierung zum Effekt, daß

C++:
void f(int** a)
{
}


Nicht aufrufbar ist mit

C++:
int a[10[10];
f(a);


Weil inkompatible Typen

wie ist es dann möglich einen mehrdimensionalen array (keine pointer) zu übergeben? also z.b.
int array[50][50];
soll an eine funktion übergeben werden, ist das etwa komplett unmöglich?
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.11.2003, 08:57 Uhr
ao

(Operator)


Wenn du so was meinst:

C++:
int a [50][50];

int f (int a[50][50])
{
    return a[30][20];
}


Das geht.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.11.2003, 14:37 Uhr
kronos
Quotenfisch
(Operator)


hmm und ein array mit zwei variablen dimension übergeben ist definitiv nicht drin? dann bleibt mir wohl nichts anderes übrig als übelstes pointer-malloc-free-getüddel...
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.12.2003, 21:21 Uhr
~sev0r
Gast


ääh - also IMHO brauchst du keine globale Definition des arrays, und auf * kannst du auch verzichten:
(korrigiert mich, wenn ich falsch liege, pls)


C++:
void mergeThem(char mergedAlphabet[2][26])
{
        // do something ...
}


void main()
{
    char mergedAlphabet[2][26] = {{0},{0}};
        // do something here
}


Dieser Post wurde am 01.12.2003 um 21:38 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.12.2003, 21:38 Uhr
Pablo
Supertux
(Operator)


main soll int sein, nicht void.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.08.2004, 21:30 Uhr
~sev0r
Gast


Jop, hast recht. Nur MS schluckt das void, unter linux muss es int sein ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: