Отладочное утверждение не удалось с помощью sprintf в C ++ - PullRequest
0 голосов
/ 05 августа 2011

Я получаю сообщение об ошибке «Ошибка отладки», когда отлаживаю свой код

Похоже, что ошибка в строке 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

Приветствие Крис

1 Ответ

4 голосов
/ 05 августа 2011

fileName ДОЛЖЕН быть достаточно большим.И char*не NULL.Например:

char fileName[1024];

или

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

Или что-то меньшее здесь.Как я вижу, я думаю, 32 или 64 было бы достаточно большим.

Я почти уверен, что утверждение не выполнено из-за указателя NULL (или 0, что здесь тоже самое) (fileName)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...