gpt4 book ai didi

c++ - 表达式必须是可修改的左值 - 结构中的数组

转载 作者:搜寻专家 更新时间:2023-10-31 01:11:19 28 4
gpt4 key购买 nike

我需要传递两个数组(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);

那么如何将两个数组和那个 Mat 对象传递给回调函数呢?

最佳答案

这个:

unsigned int* data[4];

是一个指针数组。数组不可赋值。

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

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

关于c++ - 表达式必须是可修改的左值 - 结构中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15040018/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com