Appleは「ブロック」の名前としてCにクロージャーを導入しました。ブロックのメモリを管理する必要がありますか?もしそうなら、私は何をしなければなりませんか?
1 に答える
1
プレーンCの関数スコープを持つ変数と同様に、関数のブロックリテラルには自動保存期間があります。ブロックリテラルをポインタ型と考えると、何がうまくいかないかがわかります。関数からブロックを返すと、ローカルメモリへのポインタが返されますが、これは無効になっています。
Block_copy()解決策は、ブロックを返したいとき、およびブロックBlock_release()が不要になったときに関数を使用することです。
このチュートリアルの詳細については、Cのブロックに関する別のセクションがあります。
于 2010-08-17T07:46:41.217 に答える