Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 26.06.2003, 17:37 Titel: dynamischer mehrdimensionaler Array |
|
|
Hi, weis jemand zufällig ob man einen dynamischen mehrdimensionalen Array machen kann, bzw. wie es geht?
mit:
int *Array;
Array=new int[1][1]
funktioniert es auf jedenfall nicht. _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 26.06.2003, 20:10 Titel: |
|
|
entweder: selber ne containerklasse basteln.
oder: vector verwenden. |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 26.06.2003, 21:58 Titel: |
|
|
Man erstellt ein Array of Array's of Datentyp, die jeweils alle mit New angelegt werden müssen:
Code: |
int **Array;
Array=new int*[10];
for(int i=0; i<10; i++) {
Array[i]=new int[10];
}
|
Ich bin mir in der 2. Codezeile nicht 100%-ig sicher, ob es sorum richtig ist, vielleicht muß auch das * und [] ausgetauscht werden bzw. eine Klammerung dafür sorgen, was Vorrang hat...
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
|
Nach oben |
|
|
Starwash Senior JLI'ler
Alter: 40 Anmeldedatum: 22.09.2002 Beiträge: 252 Wohnort: Zossen (bei Berlin) Medaillen: Keine
|
Verfasst am: 27.06.2003, 11:06 Titel: |
|
|
Hi,
ja die Wertzuweisung erfolgt auf diese Weise.
Gruss Tarek |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 27.06.2003, 13:16 Titel: |
|
|
BlackLordOfDragons hat Folgendes geschrieben: | Kann man die dann so verwenden:
i[x][y]=1; ? |
Das geht so nicht, wenn i von Typ int** ist. Ich würde aber einfach ein eindimensionales Array verwenden und es wie ein zweidimensionales behandeln. Etwa so:
Code: |
int ArrayWidth=10, ArrayHeight=20;
int * array=new int[ArrayWidth*ArrayHeight];
//so kann man auf Werte im Array zugreifen,
//ähnlich wie bei einem zweidimensionalen Array:
array[ x + y*ArrayWidth] = 10;
//in diesem Fall kann x von 0-9 und y von 0-19 gehen |
_________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 27.06.2003, 14:14 Titel: |
|
|
[quote="Jörg"] BlackLordOfDragons hat Folgendes geschrieben: | Das geht so nicht, wenn i von Typ int** ist. |
Falsch:
Code: |
int **Array;
Array=new int*[10];
for(int i=0; i<10; i++)
{
Array[i]=new int[10];
}
Array[1][3]=43;
cout <<Array[1][3]<<"\n";
|
klappt zu 100%!
Danke, an alle! _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 27.06.2003, 14:59 Titel: |
|
|
Jörg hat Folgendes geschrieben: | Das geht so nicht, wenn i von Typ int** ist. |
Warum sollte das nicht gehen? Ist doch korrekt...
BlackLordOfDragons: ich würde geschachtelte STL Vektoren benutzen, die sind dynamisch und kümmern sich intern automatisch um den Speicher. Und wenn du ordentlich alloc gibst ist das auch net langsam, _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 27.06.2003, 15:19 Titel: |
|
|
Ihr habt recht, ich hab mich vertan, sorry
Es sei mir verziehen _________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
|