這種錯誤一般出現在數組越界的情況下,誤用鏈表也同樣有可能出現這樣的錯誤。
發生這種錯誤可以通過vs自帶的調用堆棧功能查出大概是那行出錯了。
下面是出錯的代碼片段:
const int nMaxLen = 200;
struct Polynomial {
int stnum[50];
int ndnum[50];
};
Polynomial InitPolynomial(char* str) {
···
for (int i = 0; i < nMaxlen - 1; i++)
for (int j = 0; j < nMaxLen - 1; j++) {
if (poly.ndnum[j] < poly.ndnum[j + 1]) {
temp1 = poly.stnum[j], temp2 = poly.ndnum[j];
poly.stnum[j] = poly.stnum[j + 1], poly.ndnum[j] = poly.ndnum[j + 1];
poly.stnum[j + 1] = temp1, poly.ndnum[j + 1] = temp2;
}
}
···
}