C++数组错误
C++ Array Error
我创建了一个随机,它的大小是随机创建的。然后我为这个数组分配随机值。最后,我想将奇值和偶数值写入不同的数组。但是最后两个for
循环显示 evenArray 和 oddArray 的错误值。
错误在哪里?请帮助我识别错误。
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main()
{
srand(time(0));
int arraySize = rand() % 10 + 4;
cout << "Array Size : " << arraySize << endl;
int myArray[arraySize];
int oddIndex = 0;
int evenIndex = 0;
int oddArray[oddIndex];
int evenArray[evenIndex];
for( int m = 0 ; m < arraySize ; m++)
{
myArray[m] = rand() % 100 + 90 ;
cout << m << "th value is : " << myArray[m] << endl;
}
for( int i = 0; i < arraySize ; i++)
{
if( myArray[i] % 2 == 0)
{
evenArray[evenIndex] = myArray[i];
cout << "EVEN ARRAY " << evenIndex << "th element is " << evenArray[evenIndex] << endl;
evenIndex++;
}
else
{
oddArray[oddIndex] = myArray[i];
cout << "ODD ARRAY " << oddIndex << "th element is " << oddArray[oddIndex] << endl;
oddIndex++;
}
}
cout << "The total number of even array elements : " << evenIndex << endl;
cout << "The total number of odd array elements : " << oddIndex << endl;
cout << "/////////////////////////////////////////n";
cout << "EVEN VALUES" << endl;
for( int i = 0 ; i < evenIndex ; i++ )
{
cout << i << "th even value is: " << evenArray[i] << endl;
}
cout << "/////////////////////////////////////////n";
cout << "ODD VALUES" << endl;
for( int p = 0 ; p < oddIndex ; p++ )
{
cout << p << "th odd value is : " << oddArray[p] << endl;
}
}
int oddIndex = 0;
int evenIndex = 0;
int oddArray[oddIndex];
int evenArray[evenIndex];
如您所见,您正在初始化oddArray
,并以0
大小evenArray
。你可以做的是声明大小arraySize
的两个数组,或者更好的是你可以使用向量
数组长度初始化错误
int oddArray[oddIndex];
int evenArray[evenIndex];
在此行中,您将创建两个长度为零的数组。进一步使用这些数组将导致未定义的行为。
如果您需要一个长度动态变化的数组,则应使用 std::vector
.
相关文章:
- "错误:数组下标的无效类型'float [10001][float]'是什么意思?
- 错误:数组下标的类型"const bool[int]"无效
- Qt并发错误:数组初始化需要大括号括起来的初始值设定项列表
- 使用GCC 4.8构建错误:数组用作初始化器
- 如何修复问题中的"teminated due to timeout"错误 数组操作 |黑客兰克?
- | 9 |错误:非静态数据成员'matrix :: row'| 9 |错误:数组绑定不是在']']'令牌|之前的整数常数
- 错误:数组的总大小不得超过0x7fffffff字节
- 错误:无法将参数“1”的“double*”转换为“double”,错误:数组下标的类型“double[double]”无
- 返回并强制转换数组指针(错误:数组下标的类型..无效)
- 返回c++中的字符错误数组
- VC++错误:数组实例化的大小来自模板化的静态常量
- c++mex错误:数组下标的类型“double[mwSize]”无效
- 错误数组用作初始值设定项,我不知道错误
- 编译错误 - 数组下标'char[int]'的类型无效
- 向量在我的类中.错误:数组new [-fpermissive]中的圆括号初始化项
- 错误:数组下标的类型无效
- 错误:数组new中的size必须是整型[-fpermissive]
- 错误:数组下标的“Pixel*[__complex__ int]”类型无效
- c++错误数组显示
- C++:错误:数组下标的类型“size_t{aka long unsigned int}[size_t{aka long