请检查此代码,它可以编译并运行得很好。问题是,当我开始学习 c++(turbo c++)时,我从来没有能够将任何类型的数组声明为 ..
datatype var[variable_set_at_runtime];
我理所当然地认为这在最新的 gcc 编译器中是不可能的……但令人惊讶的是,这是可能的……
所以我的相关问题是新运营商的需求是什么?
我知道 new 运算符做了很多事情,包括在运行时在堆中动态分配内存,将地址返回到该资源......等等。
我觉得有什么区别是我的代码在堆栈上动态分配内存,而 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;
}
请阐明一些光..
谢谢。