我有这段代码

HLOCAL localHandle;
char *lpText;
localHandle = LocalAlloc(LMEM_MOVEABLE, 40);
if(localHandle)
{
    lpText = (char*)LocalLock(localHandle);
    //Call LocalFree(localHandle) or LocalFree(lpText) ????
}

我应该叫LocalFree(localHandle);还是LocalFree(lpText);

最佳答案

这两者都不是,但从代码的外观来看,lpText指向的内存在调用LocalFree之后将成为垃圾。
如果调用LocalLock,则应在调用LocalFree(localHandle)之前调用LocalUnlock(localHandle)。
为什么不直接用malloc呢您只需要调用LocalAlloc有什么技术原因吗让运行时为您做这项工作。

07-26 09:41