表达式必须是一个可修改的左值 - 数组
问题描述:
我需要将两个数组(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);
那么,如何通过两个数组和垫目标的回调函数?
答
此:
unsigned int* data[4];
是一个指针数组。数组不可分配。
假设RHS的类型是int [1024][4]
的话,我有一种感觉,你真的想这样:
unsigned int (*data)[1024][4];
事实上,我认为他们想'unsigned int类型(*数据)[1024] [4 ];'。他们受到“阵列不是指针”的困扰。 – 2013-02-23 11:31:29
@sftrabbit:或许!我不清楚RHS的类型是什么... – 2013-02-23 11:32:07
谢谢,我的问题解决了。 – 2013-02-23 12:12:17