JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ffa142a93e039abb8880a63453a18178Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

dynamischer mehrdimensionaler Array

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
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

BeitragVerfasst am: 26.06.2003, 17:37    Titel: dynamischer mehrdimensionaler Array Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
gl_echse
JLI'ler



Anmeldedatum: 01.01.2003
Beiträge: 105

Medaillen: Keine

BeitragVerfasst am: 26.06.2003, 20:10    Titel: Antworten mit Zitat

entweder: selber ne containerklasse basteln.
oder: vector verwenden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 26.06.2003, 21:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 10:33    Titel: Antworten mit Zitat

Kann man die dann so verwenden:

i[x][y]=1; ?
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Starwash
Senior JLI'ler


Alter: 40
Anmeldedatum: 22.09.2002
Beiträge: 252
Wohnort: Zossen (bei Berlin)
Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 11:06    Titel: Antworten mit Zitat

Hi,
ja die Wertzuweisung erfolgt auf diese Weise.

Gruss Tarek
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 11:09    Titel: Antworten mit Zitat

Thanks, ich probiers gleich aus!
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 13:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 14:14    Titel: Antworten mit Zitat

[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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 14:59    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 27.06.2003, 15:19    Titel: Antworten mit Zitat

Ihr habt recht, ich hab mich vertan, sorry Rolling Eyes
Es sei mir verziehen Wink
_________________
www.messiahzone.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum