new/delete new[]/delete[] について

C++
0
しょーま @shomah4a

さすがに VC 入れるのはめんどー

2010-03-22 00:29:29
Yusuke Ishikawa @yusukei

@hohehohe2 @shomah4a まぁ、結局C++の規格上new[]ならdelet[]呼ばなきゃいけないわけで・・・

2010-03-22 00:29:33
@hohehohe2

@yusukei @shomah4a 誰がメモリ解放してるかにもよるよね。delete自体にメモリ解放のコードを埋め込んでるかもしれないし。その辺一般的な方法があるのかよく知らない。

2010-03-22 00:31:43
しょーま @shomah4a

@hohehohe2 @yusukei そういう意味で gcc の new/delete new[]/delete[] の混在で abort ってのは妥当なのかもしれない

2010-03-22 00:32:51
@hohehohe2

@shomah4a @yusukei あー間違えた、delete自体じゃなくてデストラクタ自体

2010-03-22 00:33:43
Yusuke Ishikawa @yusukei

@hohehohe2 基本的には一々OSからメモリ取ってたら遅いわけで、メモリアロケータがランタイムにあるでしょう。んでアロケータがサイズまでは管理してるでしょう

2010-03-22 00:34:11
Yusuke Ishikawa @yusukei

@shomah4a まぁ確かに妥当なんだけど、どちらでも開放できてしまうほうがトラブルは少ないのも事実

2010-03-22 00:35:34
@hohehohe2

@yusukei さっきのオブジェクトのサイズがわからないからってとこ、デストラクタ自体にメモリ解放のコードが埋め込まれてたらサイズが静的に決まるかなと思って。

2010-03-22 00:36:32
@hohehohe2

@yusukei いやーそうかなー・・・

2010-03-22 00:36:55
@hohehohe2

@yusukei delete[]でないってことはarrayでないってことで、そこにarrayなものが入って来たってことは予期していない配列データを解放してるってことやからトラブル少なくはないんとちゃうかなー

2010-03-22 00:38:04
Yusuke Ishikawa @yusukei

@hohehohe2 とりあえずVCの実装ってそうなってた気がする。ランタイムのコードは公開されてるから追った記憶があるけど曖昧。まぁ、組み込みだったらわからないけど。

2010-03-22 00:39:06
@hohehohe2

@shomah4a @yusukei どっちにしろ混同しないコードを書く事やね。

2010-03-22 00:40:00
Yusuke Ishikawa @yusukei

@shomah4a むしろVC入れて検証よろ。ちょうどC++ネタとしてw

2010-03-22 00:41:15
しょーま @shomah4a

@yusukei ネタとして一瞬過ぎるw しかも最終的には仕様書嫁で終わりだしw

2010-03-22 00:42:40
Yusuke Ishikawa @yusukei

@shomah4a 嫁以前に従えだな。この場合・・・

2010-03-22 00:43:26