【发布时间】:2013-07-11 08:20:23
【问题描述】:
Coverity 指出了一个关于删除 void 指针的错误。代码如下:
void *pbits=(void *)new char[((bmp.bmWidth*bitspixel+31)/32)*bmp.bmHeight*4];
result=GetDIBits(pDC->GetSafeHdc(),HBITMAP(*pbitmap),0,bmp.bmHeight,pbits,bitmapinfo,DIB_RGB_COLORS);
char curdir[100];
if(!GetCurrentDirectory(100,curdir))
{
delete [] pbits;
return;
}
你能帮我看看什么是不正确的,我该如何解决?
非常感谢
最好的问候
金丹
【问题讨论】:
-
不知道为什么我们必须猜测它产生的警告。在 void* 上使用 delete[] 的可能性很高。所以不要使用 void*,char* 也可以。
-
@HansPassant 谢谢汉斯,干杯
标签: visual-studio-2010 visual-c++ coverity