000
22.06.2003, 01:41 Uhr
Pablo
Supertux (Operator)
|
Hallo ich hab eine Variable im globalen Bereich deklariert:
Das muss ein SRAM simulieren, d.h. 1000 Zellen für 32 Bits pro Zelle. Ich habe eine Funktion, die SRAM initialisiert. Wenn ich in dieser Funktion den Inhalt des Array wir folgt: cout ..... << SRAM[x] << ..., wobei x ist eine Zahl zwischen 0 und 999, erhalte ich: SRAM[1] = 00000000000000000000000000000000 SRAM[2] = 00000000000000000000000011111111 SRAM[3] = 00000000000000000000000000000001 SRAM[4] = 10000000000000000000000000000101
wenn ich das selbe in einer Andere Funktion mache, wo ich SRAM nicht initialisert habe, dann passiert eine Katasthrope. Der Aufruf von SRAM[0] verurascht, dass alle Zellen (von SRAM[0..999] ausgegeben werden, also erhalte ich eine Ausgabe von 32000 Zeichen. Wenn ich SRAM[1] schreibe, dann nur von SRAM[1..999], also 31968 Zeichen, das ist doch bescheurt, weiß jemand wieso? Es ist wie beim char* argv[], wenn man argv[0] per cout bzw. printf ausgibt, erhält man nicht alle Argumente. Wie kann ich das lösen, oder wieso funktiniert nur in der ersten Funktion??? oder ist es, weil wenn ich bspweise Zelle 5 initialisiert habe, dann sind Zelle 6..99 leer und deshalb nur Zelle 5 ausgegeben. Ohhh, ich sehe, dass wenn ich ganz am Schluss der initSRAM() Funktion cout << SRAM[0] << endl; schreibe, dasselbe passiert. Ich will aber, dass es wie ebi argv[] funktiniert. Wie kann ich das machen?
Danke -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 22.06.2003 um 01:55 Uhr von Pablo Yanez Trujillo editiert. |