删除void指针的Coverity问题

时间:2013-07-11 08:20:23

标签: visual-studio-2010 visual-c++ coverity

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;
}

你能帮我解决一些不正确的问题,我该如何解决?

非常感谢

最好的问候

Chintan

2 个答案:

答案 0 :(得分:1)

只需使用char *作为pbits的类型。

答案 1 :(得分:0)

delete上的void *实际上是未定义的;这就是该工具报告某些内容的原因。只需将pbits传递给GetDIBits,您就可以解决问题。