LPSTR使用后如何释放内存

时间:2009-11-06 15:21:20

标签: string unicode-string

假设我有一个LPSTR变量。如何在使用变量后释放内存。 是吗

LPSTR szFileName = GetSBCSBuffer(sFilePath); // sFilePath is a CString
delete szFileName;

OR

delete []szFileName;

请建议

2 个答案:

答案 0 :(得分:1)

如果使用new char[SIZE]分配内存,则需要使用delete []释放内存。

答案 1 :(得分:1)

如果不了解GetSBCSBuffer的具体信息,则无法回答该问题。希望编写该函数的人留下了代码和/或文档,以便您可以看到字符串的来源。可能你的两种选择都不正确。 GetSBCSBuffer的作者可能使用了不同的内存分配器或返回了指向sFilePath内部位置的指针。在最后一种情况下,调用任何解除分配器是非常糟糕的。

我刚刚注意到您在对elder_george's answer的评论中自己回答了这个问题。该实现使用new [],因此您需要删除[]。