我只是想检查我是否GlobalReAlloc正确理解了函数的含义。很快,GlobablRealloc更改大小或内存对象或其属性。我有以下问题:
HGlobal old_mem = GlobalAlloc(...);
HGlobal new_mem = GlobalReAlloc(12345, old_mem, 0); // Should I free old_mem?
Run Code Online (Sandbox Code Playgroud)
不,如果函数成功,旧内存现在无效,内容被复制到新分配的区域,从现在开始您应该使用新指针。所以如果函数成功,不要释放旧内存
如果该功能失败,则不会进行任何更改。这意味着旧指针仍然有效,您可以使用它。现在,如果您想释放旧指针,也可以。一般来说,现在程序的状态与调用之前相同GlobalReAlloc。