Visual c++ 为什么会出现断言错误? #包括 使用名称空间std; int main() { int size=0; int*myArray=newint[size+1]; 大小; cout=0;--i) { cout=0;--i) { cout
您的数组被分配为int[1]。它需要在您读入大小值后进行分配。您的数组被分配为int[1]。它需要在您读入大小值后进行分配。当size=0时,您正在初始化数组,数组大小为1Visual c++ 为什么会出现断言错误? #包括 使用名称空间std; int main() { int size=0; int*myArray=newint[size+1]; 大小; cout=0;--i) { cout=0;--i) { cout,visual-c++,assertions,Visual C++,Assertions,您的数组被分配为int[1]。它需要在您读入大小值后进行分配。您的数组被分配为int[1]。它需要在您读入大小值后进行分配。当size=0时,您正在初始化数组,数组大小为1 超出数组边界(1)时会出现断言错误。当size=0时初始化数组,数组大小为1 如果超出数组边界(1),则会出现断言错误。myArray的大小始终为0+1=1。我从用户输入的任何内容开始,您进行的第一次数组访问是myArray[i]。因此,假设用户输入5,您的数组大小为1,您访问myArray[5]。它将失败 我会在您输入大小
超出数组边界(1)时会出现断言错误。当size=0时初始化数组,数组大小为1
如果超出数组边界(1),则会出现断言错误。myArray的大小始终为0+1=1。我从用户输入的任何内容开始,您进行的第一次数组访问是myArray[i]。因此,假设用户输入5,您的数组大小为1,您访问myArray[5]。它将失败
我会在您输入大小后分配数组。myArray的大小始终为0+1=1。我从用户输入的任何内容开始,您进行的第一次数组访问是myArray[I]。因此,假设用户输入5,您的数组大小为1,您访问myArray[5]。它将失败
我会在您输入大小后分配数组。这段代码到底想做什么?您将myArray初始化为一个只包含1 int的数组,然后读取大小,然后尝试写入数组中的任意位置?谢谢大家!最初我只收到一个编译错误,并将大小初始化为0,而没有考虑清除错误。但这产生了一个运行时错误。我通过在输入大小后不初始化大小并分配myArray来修复它。再次感谢各位!@Brandon:还有一件事,您的for循环是从
int I=size;
开始的,这将是一个无效索引。它应该从size-1
@Naveen:我分配了大小为+1的数组,所以它是正确的很好。这段代码到底想做什么?你将myArray初始化为一个只包含1 int的数组,然后读取大小,然后尝试写入数组中的任意位置?谢谢大家!起初我刚收到一个编译错误,并将大小初始化为0,而没有考虑清除错误。但这产生了一个运行时错误。我修复了它通过不初始化大小并在我输入大小后分配myArray对其进行了修改。再次感谢各位!@Brandon:还有一件事,您的for循环是从int I=size;
开始的,这将是一个无效索引。它应该从size-1
@Naveen:我分配了大小为+1的数组,所以应该没有问题。
#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;
}