1

我尝试了 Mat 结构,我的应用程序显示为“运行失败”。还有其他方法吗?

以下是我尝试过的代码,但它失败了。如何进行这种锻炼或其他方法?

“普通.h”

struct initialize {
      cv :: Mat G_Sm;
};

“初始化.cpp”

struct initialize* initfunction ( ) {
    struct initialize* initializemat = ( initialize* ) malloc(sizeof(*initializemat));
    initializemat -> G_Sm = Mat:: zeros ( 3,1, CV_8U );
    return (initializemat);
}

“主.cpp”

int main () { 
   struct initialize* initializem = initfunction ();
   cout << initializem -> G_Sm << endl;

 return 0;
}

如果我使用“int”,程序不会崩溃,而不是 Mat。如果它是结构中的“Mat”变量,程序就会崩溃。

4

1 回答 1

6

使用 C++ 而不是 C:

initialize* initfunction ( ) {
    initialize* initializemat = new initialize;
    return initializemat;
}

您不应该使用malloc.
malloc不会为您调用任何构造函数,而未G_Sm初始化。

于 2013-02-18T12:13:31.537 回答