2017-02-20 15 views
-2

私の主な質問は次のとおりです。Cガベージコレクションアルゴリズムを理解するにはどうすればよいですか?私はC(まだC++ではない)を学び、自分のCのガベージコレクションアルゴリズムを書こうとしていますが、問題にぶつかりました。私の構造体がいつ解放される準備ができているかをどのように知るのですか?構造体が返された後、構造体が関数内で解放される準備ができたら、どうすればわかりますか?ポインタの有無にかかわらずstructを使うべきですか?私は、どのような「動的オブジェクトの型タグとマークビットと労働組合に格納されている」と思いまし https://cboard.cprogramming.com/c-programming/94327-garbage-collection-not-so-complicated.htmlCでの簡単なガベージコレクション

手段「オブジェクトのための二重間接を使用する」:私は、ガベージコレクションが簡単であると言い、この記事を見つけました?これは本当に簡単な方法ですか?これをCコードで書くにはどうしたらいいですか?事前

+0

リンクを読むだけで、「それほど複雑ではない」と言われています。「簡単です」とはかなり異なるかもしれません。あなたの仕事に何の制限もないなら、私はあなたの仕事を「十分に複雑」と考えています。 – RuDevel

+0

さて、私はCの学習に取り組んでいきます。Objective-CはARCで簡単に見えるようにします。 –

+0

gc per seは実際には複雑ではありません。しかし、適切なアプローチを選択し、ニーズに合ったアルゴリズムを実装し、インタフェースを設計し、アプリケーションコードに統合する方法などはかなりの経験が必要です。あなたの質問から、私はあなたが少なくとも後者を持っているか疑問を持っています。熱意はプログラミングにとって十分ではないことが多い。最初は、あまり洗練されていないものから始めたいと思うかもしれません。 – Olaf

答えて

-2

何とか参照の数のカウントを維持するだろうガベージコレクションを行うための超簡単な方法で

おかげでmallocさの場所にあります。そのカウンタが0に達すると、そのメモリの場所をfree()します。

Cでガベージコレクションを行うのはあまり意味がないかもしれません.Cと同じように、オブジェクトやその他の構造を持たないので、自分のメモリを管理する必要があります。直接。

+0

この質問は、スタックオーバーフローにはあまり適していません。 Cでgcを使う理由は非常によくあります。それ以外にPythonのCのリファレンス実装はうまくいくでしょうか? gcはOOPにバインドされておらず、CでもOOPを行うことができます。よく考えれば複雑でもない。 – Olaf

+0

私はCでそれを使う理由が多いと確信していますが、それは有効ではないとは言いませんでした - しかし、C + vs Cに関する問題を考えれば、私は必要性を疑問視していました。あなたがしていることに非常に依存します。 – peeldog

+0

あなたの主張を支持するものは何も表示されていませんが、これは「C対C++」です。あなたの答えに書いているのは、C++についても部分的なものではなく、「Cでのgcは意味をなさない」と効果的に言います。 – Olaf

関連する問題