- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
50 :デフォルトの名無しさん[sage]:2015/05/29(金) 07:13:43.33 ID:UV9YC1hI - あああああああ参照カウントあああああああ
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
54 :51[sage]:2015/05/29(金) 13:36:21.56 ID:UV9YC1hI - >>52
所有権の移譲ってなんですか?
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
58 :51[]:2015/05/29(金) 14:07:43.16 ID:UV9YC1hI - もうしわけない
void *list_car(void *obj) { enum gc_type type = gc_type(obj); if (type == GC_TYPE_NULL) { return NULL; } else if (type == GC_TYPE_LIST) { return ((struct list *)list)->car; } else { fprintf(stderr, "ERROR: TYPE\n"); abort(); } } void *list_cdr(void *obj) { enum gc_type type = gc_type(obj); if (type == GC_TYPE_NULL) { return NULL; } else if (type == GC_TYPE_LIST) { return ((struct list *)list)->cdr; } else { fprintf(stderr, "ERROR: TYPE\n"); abort(); } }
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
59 :51[]:2015/05/29(金) 14:08:17.84 ID:UV9YC1hI - void *gc_update(void **place, void *obj)
{ if (place == NULL) { abort(); } gc_incref(obj); gc_decref(*place); return *place = obj; }
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
60 :51[]:2015/05/29(金) 14:16:01.63 ID:UV9YC1hI - >>55
意味は分ったかもしれない
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
61 :51[sage]:2015/05/29(金) 15:37:20.35 ID:UV9YC1hI - decrefのカウントが0になってもフリーリストに行かない関数があればカウントが0のオブジェクトを返せそう?
return なにか(void *);
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
67 :51[sage]:2015/05/29(金) 18:09:45.20 ID:UV9YC1hI - >>63
void *移譲(void **場所) { void *オブジェクト = NULL; if (場所 == NULL){ えらー } オブジェクト = *場所; *場所 = NULL; if (オブジェクト == NULL){return NULL;} オブジェクト->カウンタ -= 1; /* 0でも何もしない */ return オブジェクト; } これどーですか?
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
68 :51[sage]:2015/05/29(金) 18:11:21.80 ID:UV9YC1hI - >>66
プログラマ(自分)が意識的に回避
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
71 :51[sage]:2015/05/29(金) 18:30:42.84 ID:UV9YC1hI - >>70
スルーしないで下さいよ
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
74 :51[sage]:2015/05/29(金) 18:46:16.27 ID:UV9YC1hI - >>72
update(新しい場所,移譲(古い場所)); みたいな感じですぐにupdateの第二引数として利用することを想定しています これなら問題ないと思ったのですが >>73 これは失礼しました
|
- C言語なら俺に聞け(入門編)Part 129 [転載禁止]©2ch.net
76 :51[sage]:2015/05/29(金) 19:33:06.21 ID:UV9YC1hI - >>75
もっともなのですがそれだとpopを実装できないのです
|