mfc-为什么类中的数组size会突然变大

问题描述

为什么类中的数组size会突然变大

vector ans; //类中的public成员变量

先在一个函数中为ans push_back了很多值 这里的size是正常的因为
for (int i = 0; i < ans.size(); i++)
m_list.AddString(ans[i]->getNum());
可以正常执行,在listbox上可以看到正确的运行结果
但是在另一个按钮响应函数中执行下列语句时则一直提示 遇到不适当的参数

void searchInfo::OnLbnDblclkList1()
{
// TODO: 在此添加控件通知处理程序代码
single *cur = ans[m_list.GetCurSel()];
infoDlg dlg(cur);
dlg.DoModal();
}
在调试的时候发现数组的size本来是3的 在赋值语句时突然变成了很大的数,其中的值当然也都变了
应该就是因此导致了错误。
实在是百思不得其解

解决方案

自己解决了,整个传数据的过程都是错的,对mfc的结构才有个初步了解,要是有人遇到跟我一样的问题可以私信我解答

解决方案二:

单步调试看下ans什么时候有数据添加的,m_list.GetCurSel()这里获得的数值是多少,size变了一定是有数据添加进去才会变

解决方案三:

是不是每次存入数据前没有清楚原有数据

解决方案四:

先看你的数据是否正确插入了,其次是不是你调试的时候没有关闭优化,导致查看结果不准确

解决方案五:

额,单步调试一下,看一下哪一步出现了问题

解决方案六:

是不是每次存入数据前没有清楚原有数据

时间: 2024-08-06 23:17:47

mfc-为什么类中的数组size会突然变大的相关文章

matrix-C++类中包含数组,如何重载运算符,第一次进入,还没有c币,求大神帮忙了,感激不尽

问题描述 C++类中包含数组,如何重载运算符,第一次进入,还没有c币,求大神帮忙了,感激不尽 这是头文件 #include #ifndef MATRIX_H_ #define MATRIX_H_ class matrix { private: double a[20][20]; int m,n; public: matrix(); matrix(const matrix&a); ~matrix(); matrix operator=(const matrix&a); friend void

c++-关于C++将类时,类中的数组需不需要用指针建立的问题

问题描述 关于C++将类时,类中的数组需不需要用指针建立的问题 如 我有class A{ private: int number[1000]};还是 class A{ private: int* number}然后在具体的初始化时在动态空间.由于我们在确立对象时,会根据动态去创建.A *test:test=new A:这个样子 ,上述两种做法的却别大吗?我估计二种做法都是动态内存的,只是第一种会导致类所有变量会连续,而第二种可能分散(因为他有二次申请内存的过程),是这样吗,各位大牛! 解决方案

java-如何为已封装的构造类中的数组赋值并打印

问题描述 如何为已封装的构造类中的数组赋值并打印 初学java 望大神赐教 class Leisss{ private String name; private Leisss(String a){ this.name=a; } public void setname(String ss){ this.name=ss; } public String getname(){ return this.name; } static Leisss shuzu[]=new Leisss[3]; public

MFC自定义类中数据怎样传递给文本框控件输出

问题描述 MFC自定义类中数据怎样传递给文本框控件输出 在MFC中,自定义了一个视频处理类,目的将处理后的每帧图像输出到picture控件显示并将产生的整型数据通过文本框控件输出.问题是不知怎样将控件变量同类中变量建立联系,使得类中数据可以输出. 解决方案 用ClassWizard去添加关联的成员变量 解决方案二: 鼠标右键点击控件,选择增加一个变量: 或者,直接使用 GetDlgItem(控件名)->SetWindowText() 也行. 解决方案三: 直接获取控件GetDlgItem,然后S

c++ 编程问题-C++类中的一个小问题,求大神指教

问题描述 C++类中的一个小问题,求大神指教 请问下面两段输出结果一样的代码在内存层面上有什么不同,有点搞不清. 代码1: 1 #include 2 using namespace std; 3 struct Test{ 4 int a; 5 Test(int a){ 6 Test::a=a; 7 } 8 }; 9 int main(){ 10 Test t(100); 11 cout<<t.a<<endl; 12 } 代码2: 1 #include 2 using namespa

关于C#中picturebox用Autosize旋转图像后变大的问题

问题描述 我用C#窗体放了一个picturebox控件,设置autosize属性.我想旋转图像,以原点为中心逆时针旋转,可是旋转后的图像被放大了,不理解为什么图像会变大,求高手指教! 解决方案 解决方案二:不要使用AutoSize,用Image.Size获取实际尺寸解决方案三:用Gdi+winfrom控件本身不能旋转解决方案四:这不是很正常么.你用PS试试不就知道了,放个和画布一样大的长方形,旋转45度,看看会不会超出画布解决方案五:原来是我代码打错一个地方..解决方案六:图片旋转画布变大问题,

CSS3中first-letter实现首字下沉变大

经常看到杂子的第一个段落的第一个文字都是占两行,而且很大,其实在网页中也可以这么设置,不过用的人似乎很少,其实主要是用到了css3的:first-letter选择器,给第一个文字设置样式,就达到了这个效果.当然这个方法是不兼容旧的浏览器的.  代码如下 复制代码 Drop-Cap Paragraphs p:first-letter{     display: block;     margin: 5px 0 0 5px;     float: left;     color: #ff3366;

改变网页中图片大小的函数,双击变大,ctrl+双击变小

<script language="javascript">function fangda_x(the){//    alert (the.src);//    alert (the.width);//     alert (the.height);var x_x=the.width;var y_x=the.height;var i_x=1.2;var str1;if (event.ctrlKey)     {    x_x=x_x/i_x;    y_x=y_x/i_x;

c++日期时间类-在日期时间类中time_t,string的应用

问题描述 在日期时间类中time_t,string的应用 求大神指导,设计并实现一个时间日期类Datetime,分别以time_t,string和三个整数作为参数设计相应的构造函数,设计析构函数,并重载<,>,+,-和=等运算符号.其中至少包括一个以友元函数的形式重载的运算符.刚入门没有思路,求思路.对于time_t,string不太会应用..大神们帮一下忙!! 解决方案 急急急!!各位好汉,走过路过.给个思路