我已阅读有关
ILockBytes::SetSize()
的 MSDN 文档,但它没有准确回答我的 SetSize()
实现是否应保留现有数据。
例如,如果当前缓冲区大小为 100,并且调用
SetSize(120)
,是否应该在调整大小的缓冲区中保留前 100 个字节中的数据?
此外,如果当前缓冲区大小为 100,并且调用
SetSize(70)
,是否应该在调整大小的缓冲区中保留前 70 个字节中的数据?
换句话说 - 我应该在 C++ 中调用
realloc()
还是单个 alloc()
?
是的,现有字节应该被保留。 扩展数组只是添加未指定值的新尾随字节。 截断数组只是截掉尾随字节。