在c++中使用sprintf调试断言失败

debug assertion failed using sprintf in c++

本文关键字:调试 断言 失败 sprintf c++      更新时间:2023-10-16

当我调试我的代码时,我一直得到"调试断言失败"错误

它似乎在下面函数的sprint行失败:

void GetReference(int side)
{   
    for (int j=0; j<exposeNumber; j++)
    {
        image = cvQueryFrame(capture); // get the first frame of video
        sprintf(fileName, "RefImage%i", (side*exposeNumber + j));
        cvSaveImage(fileName, image);
        wait(200);
    }
}

" expoenumber "等于5,"side"可以为0或1

干杯克里斯。

fileName必须足够大。还有一个char*而不是 NULL。例如:

char fileName[1024];

char* fileName = new char[ 1024 ];
//..
delete[] fileName;

或者更小的。在我看来,32或64就足够大了。

我很确定断言失败,因为NULL(或0,这里是相同的)指针(fileName)