2013-10-06 31 views

答えて

11
int *a = new int; 

a(値すなわちこの場合標準当たりとして不定ある未初期化オブジェクトである)デフォルト初期化オブジェクトを指しています。

int *a = new int(); 

a(値すなわちこの場合標準当たりとしてゼロあるゼロで初期化オブジェクトである)値初期化オブジェクトを指しています。

+3

C++ 11§8.5、P7、C++ 11§8.5、P5、およびOP場合にはC++ 11§8.5、値初期化のためにP6、ゼロ初期化し、それぞれ、デフォルトの初期化、興味がある(と私は非常にそれを疑う)。テストは、この違いを公開しない可能性があること – WhozCraig

+4

注:自動ストレージ用とは異なり、動的に割り当てられたメモリは、多くの場合、簡単なテストプログラムではゼロとなってしまいます、とだけ以前のメモリが再利用されますと、大きなプログラムで「ゴミ」が含まれています。 – hvd

5

第一の変形デフォルトの初期化は、動的組み込み例えばintような種類のは、任意の初期化を実行しないintを、割り当てられました。

intことが0の価値与え、ゼロ初期を意味し、それを値が初期化第二の変形例。

関連する問題