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

发布于 2024-11-28 05:13:57 字数 436 浏览 1 评论 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

干杯 克里斯

I keep getting the "debug assertion failed" error when i debug my code

It seems to fail at the sprintf line in the function below:

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" is equal to 5 and "side" can either be 0 or 1

Cheers
Chris

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

违心° 2024-12-05 05:13:57

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

char fileName[1024];

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

这里更小的东西。据我所知,我猜 32 或 64 就足够大了。

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

fileName MUST be big enough. And a char*. And not NULL. For example:

char fileName[1024];

or

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

Or something smaller here. As I see, I guess 32 or 64 would be big enough.

I'm pretty sure the assertion fails because of NULL (or 0, which is the same here) pointer (fileName)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文