*** Problem z MFC + przepełnienie stosu ***

0

proszę o pomoc w problemie z kalkulatorem macierzowym

W konsoli ten program działał dobrze. Chodzi o dodawanie, odejmowanie macierzy.

Wrzucam screen programu, żebyście mogli zobaczyć, jak to wygląda.

  1. Po zostawieniu samych zer w okienku MFC i kliknięciu przycisku, który powoduje wykonanie działań, a program wywala błąd przepełnienia sterty.

  2. Suma nie jest wyświetlana, jakieś losowe wartości rzuca do pliku. (wraz z wyrzuceniem błędu o przepełnieniu sterty)

  3. Gdy jako sumę przypisuję po prostu macierz A (sprawdzam działanie konstruktora kopiującego) (bez sumowania jej z macierzą B), to wszystko działa ok i jako sumę wyświetla po prostu macierz A.

(lecz gdy pola opisujące współrzędne macierzy A są zerami, a macierz B jest przypisana za sumę, to owszem - przypisuje jej wartości do zmiennej *suma * i do pliku, ale wyłazi błąd przepełnienia sterty). Wpisywałem problem w google, ale znalezione tam rozwiązania nie zadziałały.

kod źródłowy:
http://gist.github.com/2731964

Z góry dzięki za wszelkie wskazówki!

1

to nie jest błąd przepełnienia sterty. w komunikacie ładnie jest napisane, że nie przeszedł assert:
_CrtIsValidHeapPointer(pUserData)

czyli używasz gdzieś nieaktualnego wskaźnika.

0

Dodawanie na debuggerze przechodziło pomyślnie, dopiero po wykonaniu funkcji wywalało błąd. Może to jakiś wskaźnik utworzony przez Visuala do MFC, bo właściwie nie korzystam ze wskaźników przy sumowaniu. Prosiłbym o zajrzenie do kodu (w poście na górze znajduje się link). Załączam jeszcze screen z debuggera, może okazać się pomocny.

Dziękuję!

0

powiem szczerze, że pliki nagłówkowe mnie bardziej interesują niż implementacja. Wrzuć tutaj cały projekt spakowany, to ułatwisz sprawdzenie.

0

Wielkie dzięki!

P.S.: zaczynam podejrzewać konstruktor kopiujący o jakiś błąd

1 użytkowników online, w tym zalogowanych: 0, gości: 1