急请问关于结构体存储数据的有关问题,多谢~
急。。。请教关于结构体存储数据的问题,谢谢~~~~~~~~~~~~~~~~
在mfc中写的。定义了一个全局结构体来存储每次鼠标点击得到的一些信息
struct ROIMsg{
IplImage * ROI_xulie1; //Band1
IplImage * ROI_xulie2; //Band2
IplImage * ROI_xulie3; //...
IplImage * ROI_xulie4;
IplImage * ROI_xulie5;
IplImage * ROI_xulie6; //...
IplImage * ROI_xulie[6]; //Band Cnt
CvRect m_cvRect;
};
ROIMsg roiMsg[10];
本来是想通过定义roiMsg[10]数组用来存储各次点击得到的结构体中的信息值的,但是调试的时候发现第一次点击信息正常,第二次再点的时候roiMsg[1]中的确有地址,但是和roiMsg[0]中的各地址是一样的。是因为他们在调用的时候都指向了同一个指针名字么?可是他们的对象不一样啊(一个是roiMsg[0]一个是roiMsg[1])。谁能解释一下这是为什么呢?再提一下解决办法吧~谢谢了~~~~~~~~感激不尽啊!!
------解决方案--------------------
请问,
1、你赋值引用数组的时候是否进行加+1操作。
2、上一次赋值完是否进行了清空操作,调试时看看赋值的变量的值有没有改变。
------解决方案--------------------
that's it!
所以每个结构体中的指针都是指向同一个数据。
如果你想把每次的都存储起来,那么每次都把IpIMage中的数据拷贝出来。
动态申请内存。
在mfc中写的。定义了一个全局结构体来存储每次鼠标点击得到的一些信息
struct ROIMsg{
IplImage * ROI_xulie1; //Band1
IplImage * ROI_xulie2; //Band2
IplImage * ROI_xulie3; //...
IplImage * ROI_xulie4;
IplImage * ROI_xulie5;
IplImage * ROI_xulie6; //...
IplImage * ROI_xulie[6]; //Band Cnt
CvRect m_cvRect;
};
ROIMsg roiMsg[10];
本来是想通过定义roiMsg[10]数组用来存储各次点击得到的结构体中的信息值的,但是调试的时候发现第一次点击信息正常,第二次再点的时候roiMsg[1]中的确有地址,但是和roiMsg[0]中的各地址是一样的。是因为他们在调用的时候都指向了同一个指针名字么?可是他们的对象不一样啊(一个是roiMsg[0]一个是roiMsg[1])。谁能解释一下这是为什么呢?再提一下解决办法吧~谢谢了~~~~~~~~感激不尽啊!!
------解决方案--------------------
请问,
1、你赋值引用数组的时候是否进行加+1操作。
2、上一次赋值完是否进行了清空操作,调试时看看赋值的变量的值有没有改变。
------解决方案--------------------
that's it!
所以每个结构体中的指针都是指向同一个数据。
如果你想把每次的都存储起来,那么每次都把IpIMage中的数据拷贝出来。
动态申请内存。