Wie kann ich in meinem Programm einen Speicherbereich den ich mit
char geschuetzt[255];
angelegt habe vor dem Ueberschrieben werden schuetzen?
Eigentlich sollte er doch sicher sein, wird aber trotzdem ueberschrieben.
Laut Debugger liegt der Speicher hinter dem Ende eines 512k grossen Arrays aus selbstgebauten Klassen.
Er wird, wenn ich dieses Array mit Daten fuelle ueberschrieben.
Das ist nicht gut, da „geschuetzt“ eine globale Variable ist, die einen Pfad enthaelt.
Wenn Dein geschuetzt hinter dem Array mit Deinen Klassen liegt hast Du dort einen Fehler. Du überschreitest sicherlich in irgendeiner Schleife das Array der 512 Objekte.
Einen direckten Schreibschutz für Speicher gibt es nicht.
Da hilft nur ordentlich Programmieren und keine grenzwerte des Array’s überlaufen.
Wenn Dein geschuetzt hinter dem Array mit Deinen Klassen liegt
hast Du dort einen Fehler. Du überschreitest sicherlich in
irgendeiner Schleife das Array der 512 Objekte.
Komisch, das Array hat eigentlich viel Reserve.
Es kann maximal 2048 Objekte mit jeweils einem Integer und maximal 256 char aufnehmen. (Ok, sind ein bischen mehr als 512 Kb)
Derzeit nimmt es 1024 dieser Objekte auf, muesste eigentlich noch massig Platz sein.
Auch wenn es nur 1024 Objekte mit je 128 char aufnimmt wird mein Pfad ueberschrieben.
Einen direkten Schreibschutz für Speicher gibt es nicht.
Da hilft nur ordentlich Programmieren und keine grenzwerte des
Array’s überlaufen.
Wenn Dein geschuetzt hinter dem Array mit Deinen Klassen liegt
hast Du dort einen Fehler. Du überschreitest sicherlich in
irgendeiner Schleife das Array der 512 Objekte.
das Feld auf das geschuetzt jetzt zeigt liegt komischerweise noch vor der Addresse des allerletzten moeglichen Array-Elements.
Das liegt doch nicht an mir?
Einen direckten Schreibschutz für Speicher gibt es nicht.
Da hilft nur ordentlich Programmieren und keine grenzwerte des
Array’s überlaufen.
Hab bisher noch keinen unzulaessigen Wert gefunden.