C言語にGCってないの?

C言語にGCはありません。

C言語で自動的なGCを行うには?

ソフトウェア技術としては、自動的なGCを行いたい場合は、リファレンスカウントGCであれ、世代別GCであれ、オブジェクトの生成・回収を行うランタイムが必要になります。

またメモリを手動で動的確保するのではなく、メモリの動的確保・解放は、ランタイムにすべて任せる必要があります。

純粋なC言語ソースコードをコンパイラの入力として与えることができるという条件を加えると、Perl総合研究所が開発しているSPVMがひとつの選択肢となります。SPVMは、C言語へのトランスパイラで、リファレンスカウントGCを実装しています。ひとつの注意点として、実行ファイルは生成できますが、ライブラリを作成することはできません。

純粋なC言語ソースコードを出力できGCを実装している他のプロダクトは存在するかもしれません。

関連情報