0
#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 时出现断言错误?这是多项式程序的前身,其中数组的下标是每一项的幂,数组[下标] 处的元素是系数。

4

3 回答 3

3

您的数组被分配为 int[1]。读取大小值需要分配它。

于 2009-12-10T06:08:55.090 回答
1

当 size = 0 时,您正在初始化数组,数组大小为 1 当您超出数组边界 (1) 时,您会收到断言错误。

于 2009-12-10T06:09:31.093 回答
0

myArray 的大小始终为 0 + 1 = 1。i 从用户输入的任何内容开始,您进行的第一个数组访问是 myArray[i]。因此,假设用户输入 5,您的数组大小为 1,您访问 myArray[5]。它会失败!

我会在您输入大小后分配数组。

于 2009-12-10T06:09:47.967 回答