4

私のC++\ CLIには、次のコードがあります。

array<Byte>^ out_buf = gcnew array<Byte>(stream_size);
Marshal::Copy(IntPtr(buf), out_buf, 0, Int32(stream_size)); 
System::IO::MemoryStream^ stream = gcnew MemoryStream(out_buf);

MemoryStream(out_buf)、メモリストリームはメモリを再度割り当てますか、それとも単に所有権を取得しout_bufますか?

メモリを再度割り当てる場合MemoryStream、ネイティブバッファをに変換する方法はありMemoryStreamますか?

4

2 に答える 2

3

これにより、ストリームとして扱うことができるout_buf(つまり、新しいバッファーを割り当てない)ため、別のバッファーが割り当てられることを心配する必要はありません。

于 2010-11-04T17:58:08.033 に答える
2

MemoryStream(out_buf)はメモリを割り当てたり、所有権を取得したりしません。GCはそれをクリーンアップします。

于 2010-11-04T17:59:37.673 に答える