尝试将图像(按值)从 main() 传递到另一个函数时出现分段错误



我之前已经多次将图像从一个函数/方法传递到另一个函数/方法。我也在SO上看到了这个问题,但我不知道为什么当我尝试将图像从main()传递到同一文件中的另一个函数时出现分割错误。我已经尝试显示图像以确保图像正确加载。

using namespace cv;
void checkFunction(Mat image)
{
    imshow("myimage", image);
}
void main()
{
    Mat img = imread("myImage.png", 1);
    imshow("display image", img);
    checkFunction(img);
    waitKey(0);
}

对于大型对象,应在函数外部声明它们,或使用动态内存。

在大多数编译器中,堆栈(存储局部变量的位置)的大小远小于全局变量和动态内存的区域。

此外,更喜欢通过常量引用(如果它不会被更改)或引用(如果它将被修改)传递大型对象。 否则使用智能指针。

最新更新