010
22.06.2003, 16:26 Uhr
~0xdeadbeef
Gast
|
@LiLLy: Was du dir da zusammengeschrieben hast, ist eine klassische Quelle für Heisenbugs. Die meisten Betriebssysteme verwalten den Speicher aus Effizienzgründen in sog. 'Pages', d.h. das Programm kriegt einen bestimmten Speicherbereich zugewiesen, in dem es machen kann, was es will. Erst, wenn es den überschreitet, tritt ein Fehler auf.
@Pablo: Wenn du ein char[31] deklarierst, kriegst du auch nur für 31 Zeichen Speicherplatz zugewiesen. Wenn du da nen String reinschreibst, darf der nur 30 zeichen lang sein, weil noch ein 0-Zeichen angehängt wird. Was den SRAM angeht - wenn du 1000 Zeilen von Strings mit 32 Zeichen haben willst, musst du bei jeder Zeile noch ein 0-Zeichen einplanen, also char SRAM[1000][33]. Wenn du allerdings (was ich vermute) ne Bytemap haben willst, brauchst du keine Null-Zeichen, also reicht auch ein char SRAM[1000][32]. |