基于OpenCV的断层图像分割 我目前正在编写我的第一个C++程序,到目前为止,即使它还没有完成,我也希望在处理所有编译器错误之后尝试一些测试运行。我将在以下链接中提供大部分代码: 由于我只允许发布2个链接,ImageComparison的标题丢失了,我认为这并不重要。stdafx.h包括所需的opencv和标准库。 我运行了gdb,得到了以下结果: Program received signal SIGSEGV, Segmentation fault. 0x000000000040655c in cv::Mat::release() () (gdb) bt >#0 0x000000000040655c in cv::Mat::release() () >#1 0x0000000000406410 in cv::Mat::operator=(cv::Mat const&) () >#2 0x00000000004052ed in ImageComparison::LoadImages() () >#3 0x000000000040518e in ImageComparison::DoImCo() () #4 0x0000000000405019 in main ()

基于OpenCV的断层图像分割 我目前正在编写我的第一个C++程序,到目前为止,即使它还没有完成,我也希望在处理所有编译器错误之后尝试一些测试运行。我将在以下链接中提供大部分代码: 由于我只允许发布2个链接,ImageComparison的标题丢失了,我认为这并不重要。stdafx.h包括所需的opencv和标准库。 我运行了gdb,得到了以下结果: Program received signal SIGSEGV, Segmentation fault. 0x000000000040655c in cv::Mat::release() () (gdb) bt >#0 0x000000000040655c in cv::Mat::release() () >#1 0x0000000000406410 in cv::Mat::operator=(cv::Mat const&) () >#2 0x00000000004052ed in ImageComparison::LoadImages() () >#3 0x000000000040518e in ImageComparison::DoImCo() () #4 0x0000000000405019 in main (),c++,C++,这并没有给我任何线索这里出了什么问题。 我很抱歉,如果我的问题只是为了抛售,但我感谢任何建议 char* buffer; LoadImages中的这一行需要是一个实际数组,或者至少是通过new获得的东西 例如: char buffer[100]; 在这些行中: vector<Mat> images; 您应该发布可用于重现问题的最短代码段,而不是全部。当然,但我认为我的代码非常简单易懂,在大多数情况下,人们要求提供更多的代码在这里可能不需要:第一眼看到LoadImages函数时,

这并没有给我任何线索这里出了什么问题。 我很抱歉,如果我的问题只是为了抛售,但我感谢任何建议

char* buffer;
LoadImages
中的这一行需要是一个实际数组,或者至少是通过
new
获得的东西

例如:

char buffer[100];
在这些行中:

vector<Mat> images;

您应该发布可用于重现问题的最短代码段,而不是全部。当然,但我认为我的代码非常简单易懂,在大多数情况下,人们要求提供更多的代码在这里可能不需要:第一眼看到LoadImages函数时,我看到
char*buffer;ItoS(i,缓冲区)以及图像没有元素时的
图像[i-1]
。其中99.9%可能是罪魁祸首。这个IC C++使用STD::Strug。但是这对于指针声明应该是有效的,还是我缺少了什么?即使我在初始化过程中确定它的大小,也不会消除分段错误是的,它是一个有效的指针。但您不能写入指针,指针只指向内存中的随机地址。如果你运气好的话,那就错了。您需要拥有指针指向的内存。参考另一个答案来检查其他错误。是的,两个答案都很重要,而且都有帮助,但我只能挑一个。非常感谢U 2:)@Auberotte除了选择答案外,还可以随意选择有帮助的答案。是的,两个答案都很重要,都有帮助,但我只能选择一个。非常感谢你2:)
vector<Mat> images(m_number_of_images);