我定义了一个类:
class CPict : public CObject
{
public:
CPict();
virtual ~CPict();
...
}
...
该类的实体:m_pict;
另外我在其他地方定义了一个CObArray类型的实体:CObArray aaa;之后,在程序运行的时候
我每次得到一个内容不同的m_pict,就放入aaa
即: CPict *Tpict = new CPict();
memcpy(Tpict,m_pict,sizeof(CPict));
aaa.Add(Tpict);这样,语法没有错误,可是aaa里面所有元素的内容居然会和最新一次追加的元素的内容一样了!
也就是说,比如现在aaa[0]里的m_pict.i=1, 而当我新追加一个m_pict.i=2的m_pict以后,aaa[0]的m_pict.i也等于2了!
这是为什么?
之后,我改为:aaa.InsertAt(aaa.GetSize,Tpict)
还是一样的毛病,怎么办?
是不是m_pict开辟的内存块太大了?导致CObArray在内存中的拷贝出问题了?
class CPict : public CObject
{
public:
CPict();
virtual ~CPict();
...
}
...
该类的实体:m_pict;
另外我在其他地方定义了一个CObArray类型的实体:CObArray aaa;之后,在程序运行的时候
我每次得到一个内容不同的m_pict,就放入aaa
即: CPict *Tpict = new CPict();
memcpy(Tpict,m_pict,sizeof(CPict));
aaa.Add(Tpict);这样,语法没有错误,可是aaa里面所有元素的内容居然会和最新一次追加的元素的内容一样了!
也就是说,比如现在aaa[0]里的m_pict.i=1, 而当我新追加一个m_pict.i=2的m_pict以后,aaa[0]的m_pict.i也等于2了!
这是为什么?
之后,我改为:aaa.InsertAt(aaa.GetSize,Tpict)
还是一样的毛病,怎么办?
是不是m_pict开辟的内存块太大了?导致CObArray在内存中的拷贝出问题了?
解决方案 »
- 网络传过来的数据消息会经过Windows的消息循环?
- vc动态菜单问题
- CSrollView中的竖直滚动条和垂直滚动条在右下角重叠了
- 太菜了,想重新学习一下“操作系统”!大家推荐一本好的操作系统书来学习一下!!
- 征求:像CSDN一样的国外网站,谁知道?
- 请问哪里有比较新的MSDN可下载?
- 为什么自己写的bmp图片 变成了灰色 求帮忙
- MATLAB与VC++/C++/C
- API/VC怎么设定窗口左上角的小图标?
- 请问如何对以下数据结构,在映射文件中实现数据库表和对其操作?请各位多多指教!
- cbc(逍遥子),请您对[实时对修改的注册表进行恢复和禁止广告弹出]免费软件提出5个不足之处.
- 硬盘损坏,数据丢失大半,郁闷!散分!
CPict *Tpict2 = new CPict();
//赋值
.......aaa.Add(Tpict1 );
aaa.Add(Tpict2 );