#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时会出现断言错误?这是多项式程序的前身,其中数组的下标是每个项的幂,而array [下标]处的元素是系数。
答案 0 :(得分:3)
您的数组被分配为int [1]。需要在之后分配,以读取大小值。
答案 1 :(得分:1)
当size = 0时,您正在初始化数组,数组大小为1 当你走出数组边界(1)时,你会得到断言错误。
答案 2 :(得分:0)
myArray总是大小为0 + 1 = 1.我从用户输入的任何内容开始,你做的第一个数组访问是myArray [i]。因此,假设用户输入5,您的数组大小为1,并且您访问myArray [5]。它会失败!
我会在输入大小后分配数组。