2017-08-14 4 views
0

は、私は、動的に配列を割り当てられたときに[]`(unsigned int nが関数にパラメータとして渡されている可能性があります)を削除します。私はそれを使用して行われています使用 ``新しい[0] `

int * ar = new int [n]; 

delete [] ar; 

しかし、n = 0の場合はどうなりますか? 0intは全く割り当てないのと同じですか? その場合、に電話すると、悪いことが起きますか?

+2

https://stackoverflow.com/questions/1087042/c-new-int0-will-it-allocate-memoryそして、あなたは何か(割り当てを管理するためのデータ)を割り当てます。何もしないことと同じではありません。 – deviantfan

+0

@deviantfan - 私の悪い!私はあなたが "新しい" '0できますか"という言葉を書いていたのに対し、 "あなたは"あなたが "0"を削除できるかのように表現していたので、重複は見つけられませんでした(ちょっと同じことです) 。このQを削除すべきですか? –

+0

std :: vectorを使用してください! –

答えて

3

newはゼロサイズの配列で、それはdeleteです。これは何よりも便利です。0のケースに対して別の条件を記述する必要がないためです。

+0

あなたが実際に何かのために*使用しようとしない限り、 –

+0

_Phew!_私は非常に怠惰なので、私はすべての方法で、 '0'のための別の条件を書く必要はありません。 ':D' –

関連する問題