read bzw. write - Fehlermeldungen
-
Hallo,
unter WinXP verursacht mein C++-Programm (erstellt mit C++-Builder) immer wieder folgende Fehler:
"Die Anweisung in ... verweist auf Speicher in ... Der Vorgan "read" konnte nicht aufdemSpeicher durchgeführt werden."Nun vermute ich, wie bereits in einem anderen Beitrag (http://www.c-plusplus.net/forum/viewtopic-var-t-is-162809-and-highlight-is-anweisung+verweist+speicher.html) angesprochen, dass es daran liegt, dass eine strcpy - Anweisung versucht in einen read-only Bereich des RAMs zu schreiben. Kann man irgendwie angeben, dass er diese Bereiche nicht nutzen soll zum Schreiben?
DANKE!
-
Ja, du könntest einfach vorher genügend Speicher reservieren und drauf achten nicht über deine Puffer drüber zu schreiben

Die Fehlermeldung heisst nichts anderes als das du versucht auf Speicher zuzugreifen, den du nicht reserviert hast und welcher dir quasi gar nicht gehört.
-
Habe momentan keine Ahnung, wie man in C++ Speicher reservieren kann.
Kann mir bitte jemand auf die Sprünge helfen?
-
strcpy() hört sich eher nach C an?
char blupp[10]; // Für blupp werden 10 char's reserviert. // Crash! Wir kopieren 11 Chars hier: // Tatsächlich kopieren wir: >1234567890\0< // \0 ist das String-Terminierungszeichen. strcpy(blupp,"1234567890"); // Das wäre OK: >123456789\0< strcpy(blupp,"123456789"); Ansonsten lässt sich Speicher auch selbst z.B. mittels malloc() holen. Sollte in jedem C-Tutorial stehen. In C++ wird man wohl eher mit "new" arbeiten und eher nicht mit strcpy() und C-Strings...
-
Danke zunächst einmal!