#include <iostream>
using namespace std;
int main()
{
int size = 0;
int* myArray = new int [size + 1];
cout << "Enter the exponent of the first term: ";
cin >> size;
cout << endl;
for (int i = size; i >= 0; --i)
{
cout << "Enter the coefficient of the term with exponent "
<< i << ": ";
cin >> myArray[i];
}
for (int i = size; i >= 0; --i)
{
cout << i << endl;
}
return 0;
}
爲什麼我在輸入大於2時出現斷言錯誤?這是多項式程序的前兆,其中陣列的下標是每項的冪,陣列[下標]處的元素是係數。爲什麼我得到斷言錯誤?
代碼試圖去做什麼?你將myArray初始化爲只有1個int的數組,然後讀取大小,並嘗試寫入數組中的任意位置? – 2009-12-10 06:10:29
謝謝大家!最初我剛剛收到一個編譯錯誤,並將初始化的大小設置爲0,但沒有考慮清除錯誤。但是這造成了運行時錯誤。我通過不初始化大小並在輸入大小後分配myArray來修復它。再次感謝你們! – Brandon 2009-12-10 06:15:16
@Brandon:還有一件事,你的for循環是從'int i = size;'開始的,這將是一個無效索引。它應該從'size-1'開始 – Naveen 2009-12-10 06:17:14