1

アプリのStructureofMatを「実行に失敗しました」と表示してみました。これを行う他の方法はありますか?

以下は私が試したコードで、失敗しました。このトレーニングを行う方法や他の方法はありますか?

「Common.h」

struct initialize {
      cv :: Mat G_Sm;
};

「Initialize.cpp」

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

「main.cpp」

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

 return 0;
}

Matの代わりに「int」を使用すると、プログラムがクラッシュしません。構造内の「Mat」変数の場合、プログラムはクラッシュします。

4

1 に答える 1

6

Cの代わりにC++を使用します。

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

を使用してC++オブジェクトを割り当てないでくださいmalloc
mallocコンストラクターを呼び出さず、初期化されないままにしますG_Sm

于 2013-02-18T12:13:31.537 に答える