假设我有一个LPSTR变量。如何在使用变量后释放内存。 是吗
LPSTR szFileName = GetSBCSBuffer(sFilePath); // sFilePath is a CString
delete szFileName;
OR
delete []szFileName;
请建议
答案 0 :(得分:1)
如果使用new char[SIZE]
分配内存,则需要使用delete []
释放内存。
答案 1 :(得分:1)
如果不了解GetSBCSBuffer的具体信息,则无法回答该问题。希望编写该函数的人留下了代码和/或文档,以便您可以看到字符串的来源。可能你的两种选择都不正确。 GetSBCSBuffer的作者可能使用了不同的内存分配器或返回了指向sFilePath内部位置的指针。在最后一种情况下,调用任何解除分配器是非常糟糕的。
我刚刚注意到您在对elder_george's answer的评论中自己回答了这个问题。该实现使用new [],因此您需要删除[]。