2013-02-23 160 views
2

我需要将两个数组(int[1024][3],int[1024][4])和Mat*(OpenCV矩阵)传递给回调函数。
我有这样的结构:表达式必须是一个可修改的左值 - 数组

struct data_holder { 
    Mat* mat; 
    unsigned int* data[4]; 
    unsigned int* tara[3]; 
    //unsigned int tara[1024][3]; //Previous attempt 
    //unsigned int data[1024][4]; 
} 

这是我的任务:

Opencv_Button pokus = Opencv_Button(20,40,50,20); //Creating button class instance 
pokus.val("Tara"); //Button title 
ui.addButton(&pokus); //Adding button to UI 
data_holder but_data; //structure 
but_data.data = &data; //!!Expression must be a modifiable lvalue!! 
but_data.tara = &tara; //For unsigned int data[1024][4] in structure I did ... = data 
but_data.mat = &UI_tara;//Matrix assigned with no problems 
pokus.setCallback(taraButtonCallback, (void*)&but_data); 

那么,如何通过两个数组和垫目标的回调函数?

回答

4

此:

unsigned int* data[4]; 

是一个指针数组。数组不可分配。

假设RHS的类型是int [1024][4]的话,我有一种感觉,你真的想这样:

unsigned int (*data)[1024][4]; 
+2

事实上,我认为他们想'unsigned int类型(*数据)[1024] [4 ];'。他们受到“阵列不是指针”的困扰。 – 2013-02-23 11:31:29

+0

@sftrabbit:或许!我不清楚RHS的类型是什么... – 2013-02-23 11:32:07

+0

谢谢,我的问题解决了。 – 2013-02-23 12:12:17

相关问题