Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » 2D-Array

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
24.05.2004, 13:51 Uhr
Newbie



Hallo!

Weiß einer von euch wie man ein 2D Array deklariert?
Mit unsigned long var[X_RES][Y_RES]; funktionierts nicht --> Stack Overflow!

Habs dann mal so probiert:

C++:
    unsigned long (*bild1)[X_RES][Y_RES];
    bild1=new unsigned long[X_RES][Y_RES];


läuft aber nicht!
Kann mir einer von euch vielleicht helfen, bin noch ein ziemlicher Anfänger!
Vielen Dank!

PS: Ich verwende den MS-Visual C++ 6.0 Compiler.

Dieser Post wurde am 24.05.2004 um 13:52 Uhr von Newbie editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.05.2004, 14:08 Uhr
virtual
Sexiest Bit alive
(Operator)


Ist schon recht mit

C++:
unsigned long var[X_RES][Y_RES];


Der Stackoverflow kommt vermutlich daher, daß Du das ganze als lokale Variable verwendest und WIndows verwendest oder Linux mit einem ulimit auf die Stackgröße.

Lösungvorschläge, falls Du unbedingt mit lokaler Variable dieser Art arbeiten mußt:
1. Unter linux das ulimit auf unlimitted setzen
2. Unter Windows dem Linker mitteilen, die Stackgröße nicht auf ein MB zu begrenzen
(3. Auf Linux wechseln )

Ansonsten:
1. Variable nicht statisch anlegen, sondern dynamisch belegen
2. Globale Variable verwenden
--
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
24.05.2004, 14:10 Uhr
~Gast
Gast


unsigned long (*bild1)[X_RES][Y_RES];
bild1 ist ein pointer auf ein X_RES großes Array. Würdest du den Pointer um eins inkrementieren, würde er auf das nächste Y_RES zeigen.
Das andere muss imho so aussehen:
unsigned long var[X_RES][Y_RES];
bild = var
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.05.2004, 14:10 Uhr
virtual
Sexiest Bit alive
(Operator)


Achso, die Sache mit dem new: besser mal

C++:
unsigned long* bild1 = new unsigned long[X_RES*Y*RES];


und dann ist das element in der y-ten Zeile und x-ten Spalte

C++:
bild1[x+y*X_RES]


--
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
004
24.05.2004, 19:41 Uhr
Newbie



Läuft Nun!!!
Vielen Dank für eure Hilfe!!!

 
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: