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

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

OR

delete []szFileName;

请告知

有帮助吗?

解决方案

如果存储器使用new char[SIZE]那么它需要使用delete []被释放分配。

其他提示

您可以不回答这个问题,不知道GetSBCSBuffer的细节。希望谁写离开你的代码和/或文档的功能,所以你能看到串得来的。这可能是你没有替代品是正确的。 GetSBCSBuffer的作者可能使用不同的内存分配器或返回一个指向内部sFilePath的位置。在后一种情况下这将是非常糟糕的调用任何释放器。

我只注意到你的回答自己的问题中的 elder_george的回答。实施采用了新的[],所以你需要删除[]。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top