2010-11-04 2 views
4

В моей C++ \ CLI У меня есть этот кусок кода:Преобразовать родной буфер MemoryStream

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?

ответ

3

Это позволяет обрабатывать out_buf (т. Е. Не выделяет новый буфер) в качестве потока, поэтому вам не о чем беспокоиться о распределении другого буфера.

2

MemoryStream (out_buf) не выделяет память и не принимает на себя ответственность. GC очистит его.

Смежные вопросы