0

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

你能帮我解决什么是不正确的,我该如何解决?

非常感谢

此致

钦坦

4

2 回答 2

1

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

于 2013-07-11T10:30:14.217 回答
0

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

于 2013-07-12T05:05:46.630 回答