Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:无效类型';int[int]';对于数组中的数组下标_C++_Arrays - Fatal编程技术网

C++ 错误:无效类型';int[int]';对于数组中的数组下标

C++ 错误:无效类型';int[int]';对于数组中的数组下标,c++,arrays,C++,Arrays,这是我的代码,我做错了什么 #包括 使用名称空间std; int main() { int n; cin>>n; int a[n]; 对于(inti=0;i>a[i]; 对于(int i=0;i>n; int a[n]; 这是在创建一个可变长度数组,这是,但某些编译器允许它作为非标准扩展。这本身不是一个错误,但需要避免。当需要动态分配数组时,请使用std::vector 也就是说,您的错误在这里: if(a[i]>j[i])cout如果初始化数组,int数组的下标必须是常量。 如果要使用动态数

这是我的代码,我做错了什么

#包括
使用名称空间std;
int main()
{
int n;
cin>>n;
int a[n];
对于(inti=0;i>a[i];
对于(int i=0;i如果(a[i]>j[i])不能我相信你的问题在main的第3行:
inta[n];
要在c中动态分配数组,您可能需要看一下这篇文章:

intn;
cin>>n;
int a[n];
这是在创建一个可变长度数组,这是,但某些编译器允许它作为非标准扩展。这本身不是一个错误,但需要避免。当需要动态分配数组时,请使用
std::vector

也就是说,您的错误在这里:


if(a[i]>j[i])cout如果初始化数组,int数组的下标必须是常量。
如果要使用动态数组,可以使用int指针,如下所示:

int n;
//Make some changes...
int *buffer=new int[n];

HMM<代码> int a[n];看起来无效,C++。你将代码< > [i] < /C> >到 j[i] 。后者是一个键入,你的意思是“代码> A[j] < /Cord>。这是语义错误(C++中,可能不是编译器)但这不是问题所在。
std::vector
会更好。
operator new
很容易教,但指针很难使用。
int n;
//Make some changes...
int *buffer=new int[n];