这种错误一般出现在数组越界的情况下,误用链表也同样有可能出现这样的错误。
发生这种错误可以通过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;
}
}
···
}