vc ++中的动态内存删除

时间:2015-05-23 05:11:11

标签: visual-c++ mfc

enter image description here我在我的代码中使用_aligned_malloc。但它正在抛出错误错误,如图所示。

CString sBuffer = _T("Hello");
TCHAR*   pBuffer; 

pBuffer = (TCHAR *)_aligned_malloc(1024, 16);

if (pBuffer == NULL) {
    ...............Error .. msg 
}

pBuffer =  sBuffer.GetBuffer(sBuffer.GetLength());

..................................................
.........................................................

sBuffer.ReleaseBuffer(sBuffer.GetLength());

if (pBuffer != NULL) {
    _aligned_free(pBuffer);
}

1 个答案:

答案 0 :(得分:2)

CString类实现了(LPCTSTR)强制转换操作符,可用于获取const TCHAR*。 请注意,TCHAR MBCS 模式下定义为char,在 UNICODE 模式下定义为wchar。有关更多详细信息,请参阅其定义的 tchar.h

如果您想要修改缓冲区的内容,则需要使用GetBuffer()方法。完成后别忘了给ReleaseBuffer()打电话。因此,无需手动分配内存。

您还可以从CString轻松构建TCHAR*。有一个构造函数可以做到这一点。