请检查这个代码,它编译并运行绝对正常..问题是,当我开始学习c ++(turbo c ++)时,我从来没有能够声明任何类型的数组作为..
datatype var[variable_set_at_runtime];
Run Code Online (Sandbox Code Playgroud)
我理所当然地认为这在最新的gcc编译器中是不可能的......但令人惊讶的是这可能......
所以我的相关问题是,那么新运营商的需求是什么?
我知道new运算符可以执行很多操作,包括在堆中运行时动态分配内存,将地址返回给该资源......等等.
我觉得有什么不同,我的代码动态地在堆栈上分配内存,而新的代码在堆上运行?这是唯一的区别......
写完这样的东西后,我真的很惊讶,因为当我开始学习c ++时,我无法做到这一点......为了添加它,我也能为自定义数据类型做到这一点......: - O
#include<iostream>
using namespace std;
struct A
{
int a;
int b;
};
int main()
{
int a;
cin>>a;
int ch[a];
for(int i=0;i<a;i++)
ch[i]=i+1;
for(int i=0;i<a;i++)
cout<<"\n\nch=="<<ch[i];
A obj[a];
cin>>obj[a-1].a;
cin>>obj[a-1].b;
cout<<"\n\n obj.a,obj.b=="<<obj[a-1].a<<" , "<<obj[a-1].b;
}
Run Code Online (Sandbox Code Playgroud)
请说清楚..
谢谢.