ガベージコレクタを持たない言語だ。コンパイル時に、構造体などのオブジェクトの所有権と生存状態(ライフタイム)を分析することで、オブジェクトを適切なタイミングでメモリから削除する仕組みになっている。この仕組みはとても良くできているが、時々、削除のタイミングを開発者が自分で制御したいこともある。オブジェクトを他の言語に渡したい時だろう。関数を抜けた時にオブジェクトの寿命が尽きたと判断されて、削除されてしまうことがある。これが起こると、他言語に渡したポインタは、参照先のオブジェクトが存在しない状態、いわゆる「ダングリングポインタ」になってしまう。この記事では簡単な例を使って、ダングリングポインタが作られてしまう悪いやり方と、それが作られない、正しいやり方を紹介する。安定版で動作を確認してある。それ以降なら、変更なしで動くはずだ。簡単な例で実験してみよう。構造体を他言語に渡してみる。}}以下が使う側(他言語側)のコードだ。