C#とC++のアンマネージコードで作業していますが、メモリを扱うときにわからない2つのことがあります。C#とC++で作業しているときのメモリ割り当て/割り当て解除
を変数は動的に(新しいを使用して)C#の下に割り当てられ、その後、C++アンマネージコードに渡された場合:誰かが私を理解するのに役立つことができます。その可変メモリは、C++アンマネージコードの下でユーザによって手動で割り当て解除される必要がありますか?
変数がC++で動的に割り当てられていて(新しいものを使用して)管理されていて、C#に渡された場合、ガベージコレクタがそのメモリを割り当て解除すると言うのは安全でしょうか?経験則として
>相互運用の一般的な間違いは、アンマネージド側が完了する前にメモリの割り当てを解除することです。 https://msdn.microsoft.com/en-us/library/system.gc.keepalive.aspxを参照してください。 – Wollmich