Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Speichervergabe in C++

xhauster / 2 Antworten / Baumansicht Nickles

Ein besserer Betreff ist mir grad nicht eingefallen. Es geht um folgendes:
In meinem Programm gibt es mehrere Klassen, die jeweils einen Array und eine normale Variable enthalten (kein array). Die Klassen sind von einander unabhängig, also keine Vererbung. Das letzte Element des Arrays wird seltsamerweise immer an der gleichen Stelle gespeichert wie die normale Elementvariable der Klasse, die davor deklariert wurde. Damit ändert die eine Klasse immer die Variable der anderen Klasse.
Weitere Infos: Compiler: MS Visual C++ 6, keine Zeiger oder Referenzen im Programm.
Entweder das ist ein Fehler im Compiler oder ein gehöriger Fehler in meiner Logik. Ich komm jedenfalls nicht selbst drauf.

bei Antwort benachrichtigen
mr.escape xhauster „Speichervergabe in C++“
Optionen

Auf anhieb würde ich sagen, dass irgendwo ein array-zugriff im aus landet, d.h. nicht zwischen 0 und n-1.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
thomas woelfer xhauster „Speichervergabe in C++“
Optionen

nur mal so als hinweis: derlei probleme sind so gut wie ne auf einen fehler im compiler zurzueckzufuehren... :)

ich vermute das die "normale" variable in der klasse hinter dem array liegt. das bedeutet das du, wenn du in das array schreibst und dabei mehr werte reinschreibst als das array platz hat hinter das array schreibst - und dann die variable erwischt.

m.a.w.: du hast irgendwo einen schreibzugriff der auf einem index arbeitet der zu gross ist.

WM_GOODLUCK

this posting contains no tpyos.
bei Antwort benachrichtigen