0

コードをデバッグすると、「デバッグアサーションに失敗しました」というエラーが表示され続けます

以下の関数のsprintf行で失敗しているようです。

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

    }
}

「exposeNumber」は5に等しく、「side」は0または1のいずれかです。

乾杯クリス

4

1 に答える 1

4

fileName十分に大きくなければなりません。そしてchar*。そしてではありません NULL。例えば:

char fileName[1024];

また

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

またはここで何か小さい。ご覧のとおり、32または64で十分だと思います。

NULL(または0、ここでも同じです)ポインタ(fileName)が原因でアサーションが失敗すると確信しています。

于 2011-08-05T10:20:16.157 に答える