在c++中使用sprintf调试断言失败
debug assertion failed using sprintf in c++
当我调试我的代码时,我一直得到"调试断言失败"错误
它似乎在下面函数的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
)
相关文章:
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 使用扫描的调试断言失败
- 图片不显示,关闭时出错 --> 调试断言失败!表达式:is_block_type_valid(标头>_block_use)
- C++ 调试断言失败 - 矢量下标超出视觉工作室的范围
- 调试断言失败的缓冲区!=nullptr
- 获取有关调试断言失败的错误:表达式:"(_Ptr_user &(_BIG_ALLOCATION_ALIGNMENT -1)) == 0" &&0
- 在Win10上使用带有Qt5的OpenCV3.0,调试断言失败
- C++,弹出调试断言失败窗口,我得到矢量迭代器不兼容的错误运行时
- C++ 调试断言失败,无效的空指针
- 如何在 Linux 上强制执行矢量下标超出范围的调试断言
- 调试断言仅在某些情况下失败?C++
- 调试断言失败
- 映射/集迭代器不可取消引用 (C++) - 调试断言失败
- std::vector<std::vector<int>>:调试断言失败。C++矢量下标超出范围保留内存
- 使用 Microsoft VS 编写程序C++,但我在这里收到调试断言消息.它可以在 cpp.sh 上运行,repl.i
- 字符串抛出矢量下标调试断言
- 使用调试断言时避免 ODR 冲突
- MFC DDX_RADIO会导致调用dodataexchange(dlgdata.cpp行286)时导致调试断言失败
- 无法在谷歌测试中捕获调试断言(死亡测试不满足它)
- 调试断言失败的矢量下标超出C 范围