2012-02-01 97 views
-3

因此This是我的代碼,我一直在獲取this error。 我不知道它是什麼。 在得到錯誤之前我做了什麼:將構造函數和析構函數添加到我的類中。 錯誤似乎是什麼:錯誤窗口指向第52行,unsigned int _size; // number of account stored但是我沒有看到任何代碼錯誤。在C++中獲取錯誤

+0

我看不到錯誤,但我認爲這是您初始化AccountInfo的數組[200]時。 – roymustang86 2012-02-01 22:08:32

+0

失敗的斷言位於'dbgdel.cpp'的第52行,而不是* *代碼的第52行。您需要使用您的調試技巧來追蹤失敗發生的地方。 – ruakh 2012-02-01 22:09:07

+1

正如你所發佈的那樣,代碼根本不會(不應該)編譯。也許你正在編譯添加了一些缺失的頭文件?如果你打算使用C++,我會建議使用C++,並且(例如)用'std :: string'替換你對'char *','strdup','strcmp'等的使用。 – 2012-02-01 22:10:10

回答

1

一個問題是,你的AccountInfo類有一個默認的構造函數,它不初始化任何指針,但是它的析構函數在這些指針上大肆調用free。最好的方法是使用std::string而不是char *,但如果你真的堅持使用char *,那麼當它們沒有被初始化時,你至少需要將這些指針初始化爲NULL

這個問題可以導致此斷言失敗(因爲Visual Studio中,在調試模式下,將會將初始化這些指針到特殊,很容易識別的陷阱值—其更好的功能,恕我直言之一),但我沒有看看你的代碼是否足夠,看看你是否可能有其他類似的問題,可以導致它,所以我不知道這個問題是什麼導致失敗。但無論如何,您都需要修復它。