• 20.07.2025, 22:31
  • Register
  • Login
  • You are not logged in.

 

mafiahamster

Full Member

c/c++ arryas

Wednesday, January 12th 2005, 12:04am

hi allerseits,
kleine frage,
wie kann ich ein mehrdimensionales array in eine andere funktion uebergeben?

jaja, kleiner fluechtigkeitsfehler, so ein "a" kann einem schonmal rausrutschen :)

hurra

God

Re: c/c++ arrys

Wednesday, January 12th 2005, 12:11am

Hm, ich denk mal dass das nur mit Zeigern geht

Source code

1
2
3
4
5
6
7
8
9
10
11
12
int BerechneBlabla(int **array)
{
 //Rechne...
  return 0;
}


int **feld;
feld=new int*[8];
for(int i=0;i<8;i++)feld[0]=new int[8];
for(int i=0;i<8;i++)for(int j=0;j<8;j++)feld[i][j]=i+j;
int ret=BerechneBlabla(feld);


Btw es heißt Array

mafiahamster

Full Member

Re: c/c++ arryas

Wednesday, January 12th 2005, 12:28am

nochmal zum verstaendnis:
untere absatz,
ich initialisiere mir einen zeiger auf einen zeiger (also das **)
denn lass ich auf mein zweidimensionales array zeigen
soweit so klar,
aber zu was sind die schleifen unten dran?

so auf den ersten blick sieht das fuer mich aus, wie wenn ich jede einzelne adresse des arrays an meinen zeiger uebergebe.

bei einem eindimensionalen array uebergibt man ja auch nur die erste adresse?
geht das bei den mehrdimensionalen nicht?

Eumel

God

Re: c/c++ arryas

Wednesday, January 12th 2005, 7:32am

Topic hat immernoch einen Fehler :) "Array" heißt dat.

Willst du ein mehrdimensionales Array erstellen oder in eine Funktion übergeben?

Ich denke mal "void function (int ** array);" dürfte korrekt sein.

Aufruf: "function(&ourArray);"

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

hurra

God

Re: c/c++ arryas

Wednesday, January 12th 2005, 4:24pm

Io,habs ausgebessert, danke!

for(int i=0;i<8;i++)for(int j=0;j<8;j++)feld[j]=i+

Diese Zeile füllt das Array nur mit Daten, nur der (halben) Vollständigkeit haber.

Noch ein Bsp mit 1-dimensionalem array:

Source code

1
2
3
4
5
6
7
void AusgabeEins(int *i)
{
  printf("%d",i[0]);
}
int *i=new int[20];
i[0]=3;
AusgabeEins(i);