-1

私はPythonの世界から来て、メモリ管理が面倒を見てくれました。最近本格的な C++ コードを書き始めたので、メモリ割り当ての方法に興味があります。voidK&R が関数を使用して、あらゆる種類の大きな配列操作を行うことを提案していることを知っています。これは物事を成し遂げるための完全に有効な方法ですが、私は関数の戻り値がもう少し説明的であることを好みます。

したがって、別の解決策は、関数内で編集int * function (int param) {}されたメモリ ブロックを返すようなものを用意することです。しかし、その関数を使用する人が後でmalloc使用するという保証はありません。free

ここで質問があります:「メモリ割り当て関数を文書化する標準的な方法はありますか?」。freeある意味で、API ユーザーがドキュメントを読むという私の誠実さに基づいて、API ユーザーに を強制したいと考えています。

単純な参照カウントを強制する他の方法がいくつかあるのではないfreeでしょうか?

できるだけ長くはSTL避けたいので、回答をいただく前に回答を探しています。Boost

皆さんありがとう。

4

5 に答える 5

1

最新の C++には、メモリ管理に役立つスマート ポインタークラスがいくつか用意されています。malloc通常、 /freeまたはnew/を使用する必要はありませんdelete。C++11 以降に標準化された最も重要なスマート ポインター クラスは次のとおりです。

スマート ポインターが所有するオブジェクトを生成するには、次のことを知っておく必要があります。


頭いい!

于 2013-11-06T23:03:51.330 に答える
-1

たとえば、ベクトルをパラメーターとして参照して関数を宣言することをお勧めします。これにより、ベクトルが存在し、呼び出し元によって割り当てられることが保証されます。したがって、呼び出し元はオブジェクトの存続期間を担当し、呼び出し先内でそれを埋めるだけです。

http://www.informit.com/articles/article.aspx?p=373338&seqNum=2

于 2013-11-06T22:50:02.400 に答える