2016-12-07 7 views
-1

C++の次の2行のコードの違いは何ですか?新しいキーワードのないC++のポインタへのポインタ

行1:

MyClass ** objects = new MyClass * [Number]; 

回線2

MyClass * objects [Number]; 
+1

これは確かにC++ですか? – BufBills

+0

@BufBillsなぜそうではありませんか? – melpomene

+2

これは総称的な質問です。 'new'演算子が何をしているのか、どのようにオブジェクトがあるのか​​を知るには、[C++言語のあなたの好きな本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)自動保存期間が割り当てられ、ポインタがどのように機能するかを示します。 –

答えて

1

LINE1は、オブジェクトへのポインタへのポインタを定義し、それが初期化を含んでいます。 2行目(line2)は、オブジェクトへのポインタの配列を定義します。この配列は決して初期化されません。

+0

初期化すると、オブジェクトに初期値を与えることを意味しますか? – Admia

+1

いいえ、MyClassオブジェクトではありません。 Line1では、初期化後のあなたの変数 'objects'はいくつかのポインタ(pointresの配列)を指し始めるようになります。この配列の要素は初期化されません。 –

関連する問題