我已经使用C++几年了,今天我看到了一些代码,但这怎么能完全合法呢?
int main(int argc, char **argv)
{
size_t size;
cin >> size;
int array[size];
for(size_t i = 0; i < size; i++)
{
array[i] = i;
cout << i << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据海湾合作委员会编制.
如何在没有new或没有运行时确定大小malloc?
只是为了仔细检查,我用谷歌搜索了一些和我的所有类似的代码声称存储大小错误.
甚至Deitel的C++如何编程p.共同编程错误4.5下的261个状态:
只有常量可用于声明自动和静态数组的大小.
给我看.
#include <iomanip>
#include <iostream>
#include <Windows.h>
using namespace std;
template <class T>
void sort(int n, T a[]){
for(i=0;i<n-1;i++){
for(j=i;j<n;j++){
if(a[i] > a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void main(){
int size;
cout<<" Please input the amount of numbers you would like to sort"<<endl;
cin>>size;
int Amta[size];
for(int i=0; i<size; i++){
cout<<"Please enter the "<<size+1<< "number";
cin>>Amta[i];
}
Sleep(100000);
}
Run Code Online (Sandbox Code Playgroud)
我试图获取用户想要从用户输入的数量并将其存储在可变大小中.
但是当我初始化时,array Amta[size]我得到以下编译错误:
表达式必须具有恒定值
和
C2057:预期的常量表达式"编译错误.
我已经编写了以下代码,但它显示错误
use of parameter outside function body before ‘]’ token
Run Code Online (Sandbox Code Playgroud)
代码是
#include <iostream>
using namespace std;
int n=10;
void a(int s[n][n])
{
cout<<"1";
}
int main()
{
int s[n][n]={0};
a(s);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用全局变量传递可变大小的多维数组。我不想在这里使用向量。