[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 11:17 / Filesize : 219 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part15



1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/

894 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 02:15:54 ]
テキトーなクラスつくってデストラクタにwritelnでも入れとけば確認できるんじゃないでしょうか。

895 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 02:19:45 ]
ていうかよく見たら参照元がdeleteされたあとさらにdeleteしてるんすか。
これはやっちゃだめでしょう。

896 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:25:33 ]
気になって眠れないので調べたら、
「ポインタ、動的配列、参照変数は、 delete のあと null にセットされます。」
と言う一文が。
しかしこの場合nullがセットされるのは参照変数としてのA自体で、
Aの実体を参照してた参照変数のBはそのまんま(つまりゴミ参照してる)じゃないでしょうか。
なのでやっぱり複数の参照変数で参照されてる大元消したあとにdeleteするのはまずいかも。

897 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 09:24:20 ]
>>893
www.kmonos.net/alang/d/expression.html#DeleteExpression
 > それ以外の場合はガベージコレクタが呼び出され、
 > インスタンスに割り当てたメモリは直ちに解放されます。
とあるから、 delete A; でBが無効な参照になるのは確実だと思う。

ただ、解放済み(だけどもともとGCで確保した)領域への参照に対する
deleteについては仕様に言及がないと思うので、これは実装依存だと思う。
(つまり、実装によっては未定義動作となる可能性もあるということ)

実装依存となると、実装がどうなってるか分からない(今回の場合)なら
やっちゃ駄目な操作(選択肢の1)になるかな。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef