我尝试 Mat的结构我的应用显示为“运行失败”。还有其他方法吗?
下面是我尝试的代码,它失败了。如何进行锻炼或其他任何方式?
“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;
}
如果我使用“int”而不是Mat,则程序不会崩溃。如果结构中的“Mat”变量,则程序崩溃。
答案 0 :(得分:6)
使用C ++而不是C:
initialize* initfunction ( ) {
initialize* initializemat = new initialize;
return initializemat;
}
您不应该使用malloc
分配C ++对象
malloc
不会为您调用任何构造函数,而G_Sm
未初始化。