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