【发布时间】:2021-04-11 10:31:47
【问题描述】:
有人能解释一下下面提到的数组中到底发生了什么吗?我不知道 for 循环中的语句到底是做什么的。有人可以解释一下
#include<iostream>
using namespace std;
int main(){
int m=3,n=2;
int *arr[m];
for(int i=0;i<m;i++){
arr[i]=new int[n];
}
return 0;
}
【问题讨论】:
-
int m=3; int *arr[m];不是标准 C++,因为m不是编译时常量。一些编译器将允许它作为扩展,但它不可移植,不应依赖它。将m设为const,否则使用std::vector。见Why aren't variable-length arrays part of the C++ standard? -
有人能解释一下下面提到的数组中到底发生了什么 -- 真正发生的是编译器错误。该数组不是有效的 C++。
标签: c++ multidimensional-array