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 回答