このコードをチェックしてください。コンパイルされ、完全に正常に実行されます。問題は、c ++(turbo c ++)の学習を開始したとき、どのタイプの配列も..として宣言できなかったことです。
datatype var[variable_set_at_runtime];
そして私はこれが最新の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;
}
少し光を当ててください。
ありがとう。