各位高手,小弟在VC中使用CobArray遇到些问题,烦请解答,在线等&……

guanzi1983guanzi 2010-09-14 10:07:23
添加数据到Cobarray中
CObArray m_obArray;
CGraph *pGraph=new CGraph(m_nDrawType,m_ptOrigin,point);
m_obArray.Add(pGraph);
删除动态分配的内存和CObArray
delete m_obArray.GetAt(i);//释放内存
m_obArray.RemoveAll();//删除CObArray数据
我的问题
1。释放时候,释放的是动态分配的内存地址,还是CGraph(m_nDrawType,m_ptOrigin,point);类中添加的数据
2.m_obArray.RemoveAll();删除的是CGraph类中的数据,还是存储CGraph内存的地址
3。CGraph *pGraph=(CGraph*)new CGraph(m_nDrawType,m_ptOrigin,point);
将动态开辟的地址的指针值传递到*pGraph中,程序也没有问题,不知道是怎么回事。
谢谢高手们,在线等
...全文
236 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
dengzikun
离开了吗。
最后一个问题,我就结贴了
dengzikun 2010-09-14
  • 打赏
  • 举报
回复
是的.

你可以简单地认为m_obarray开辟了连续的内存,做数组,每个数组单元存放一个CGraph指针,通过这个指针
,可以访问到你创建的CGraph对象.
guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dengzikun 的回复:]
m_obArray为保存CGraph对象的指针开辟了内存.RemoveAll释放的是m_obArray开辟的内存.
[/Quote]

我是不是可以这样理解
m_obarray保存我开辟对象的内存,比如0x888888;
RemoveAll释放的是m_obarray保存对象内存的地址。

那我还想问一下,m_obarray中通过我开辟对象,是怎么访问我对象中的数值呢
就是说我存在m_obarray中的对象内存,我是怎么对象值得,我知道可以通过索引getat来访问,就是不明白,怎么连接的。谢谢


暮雨晨舟 2010-09-14
  • 打赏
  • 举报
回复
好像和孙鑫的VC视频中有一节很像的
dengzikun 2010-09-14
  • 打赏
  • 举报
回复
m_obArray为保存CGraph对象的指针开辟了内存.RemoveAll释放的是m_obArray开辟的内存.
guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dengzikun 的回复:]
MSDN的解释:

Removes all the pointers from this array but does not actually delete the CObject objects.
[/Quote]
这个我看了,他说的是删除m_obArray.Add(pGraph);
pGraph的指针值,就这里我不明白,CObArray里面存的是我初始化类的数据,还是我动态开辟的内存地址啊,烦请详细说明,谢了
guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
dengzikun---问一下

那最后的m_obArray.RemoveAll();//释放的是什么数据呢,是保存CGraph类的地址??
dengzikun 2010-09-14
  • 打赏
  • 举报
回复
MSDN的解释:

Removes all the pointers from this array but does not actually delete the CObject objects.

guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guanzi1983guanzi 的回复:]
delete m_obArray.GetAt(i);//释放内存
m_obArray.RemoveAll();//删除CObArray数据
--------------------------------------
这里不是有注释说的很清楚吗?


这是我自己写的哈
我想问的是delete m_obArray.GetAt(i);//释放内存
释放的是CGraph类,开辟的地址内存……
[/Quote]


那最后的m_obArray.RemoveAll();//释放的是什么数据呢,是保存CGraph类的地址??
dengzikun 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guanzi1983guanzi 的回复:]
引用楼主 guanzi1983guanzi 的回复:
添加数据到Cobarray中
CObArray m_obArray;
CGraph *pGraph=new CGraph(m_nDrawType,m_ptOrigin,point);
m_obArray.Add(pGraph);
删除动态分配的内存和CObArray
delete m_obArray.GetAt(i);//释放内存
……
[/Quote]

不用强制变换,new不但分配内存,还调用CGraph的构造函数做初始化.
所以new后就不单单是一块内存了,是一个对象了。
guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 guanzi1983guanzi 的回复:]
添加数据到Cobarray中
CObArray m_obArray;
CGraph *pGraph=new CGraph(m_nDrawType,m_ptOrigin,point);
m_obArray.Add(pGraph);
删除动态分配的内存和CObArray
delete m_obArray.GetAt(i);//释放内存
m_obArray.RemoveAll();//删除C……
[/Quote]



第三个问题是
CGraph *pGraph=(CGraph*)new CGraph(m_nDrawType,m_ptOrigin,point);
与CGraph *pGraph=new CGraph(m_nDrawType,m_ptOrigin,point);
多了一个强制把内存地址变为指针啊
dengzikun 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 guanzi1983guanzi 的回复:]
delete m_obArray.GetAt(i);//释放内存
m_obArray.RemoveAll();//删除CObArray数据
--------------------------------------
这里不是有注释说的很清楚吗?


这是我自己写的哈
我想问的是delete m_obArray.GetAt(i);//释放内存
释放的是CGraph类,开辟的地址内存……
[/Quote]

释放的是CGraph类对象开辟的地址内存,释放后,CGraph类对象内的值就无效了.
guanzi1983guanzi 2010-09-14
  • 打赏
  • 举报
回复
delete m_obArray.GetAt(i);//释放内存
m_obArray.RemoveAll();//删除CObArray数据
--------------------------------------
这里不是有注释说的很清楚吗?


这是我自己写的哈
我想问的是delete m_obArray.GetAt(i);//释放内存
释放的是CGraph类,开辟的地址内存,还是我CGraph类中的值
Eleven 2010-09-14
  • 打赏
  • 举报
回复
delete m_obArray.GetAt(i);//释放内存
m_obArray.RemoveAll();//删除CObArray数据
--------------------------------------
这里不是有注释说的很清楚吗?
dengzikun 2010-09-14
  • 打赏
  • 举报
回复
1.释放的是pGraph指向的对象.
2.把指针从数组中删掉,但不删除指针所指的对象.
3.不明白说的什么意思.
内容概要:本文介绍了一个基于Python的WGAN-LSTM混合模型,用于解决复杂时间序列预测问题。该模型结合瓦瑟斯坦生成对抗网络(WGAN)与长短期记忆网络(LSTM),利用LSTM捕捉时间序列中的长期依赖和动态趋势,通过WGAN的生成器与评价器对抗训练,使预测结果不仅贴近真实值,还能更好地保留数据分布特征,如波动性、尖峰和异常变化。项目采用PyTorch实现,涵盖数据预处理、滑动窗口构建、标准化、条件生成器与评价器设计、梯度惩罚机制、联合损失优化及模型评估全流程,并支持多变量输入与不确定性建模,适用于非线性、非平稳、高波动场景的单步预测。; 适合人群:具备Python编程基础和深度学习背景,熟悉PyTorch框架,从事时间序列分析、AI建模或数据科学相关工作的研究人员、工程师及高校学生(建议有1年以上相关经验); 使用场景及目标:①应用于金融价格、电力负荷、设备传感、市场需求等高波动时间序列的精准预测;②实现对未来不确定性的量化表达,支持风险评估、区间预测与情景模拟;③提升传统回归模型对异常波动的识别能力,优化预警与决策系统; 阅读建议:本文提供完整代码结构与核心实现片段,建议结合完整项目代码、数据集和博客文档进行复现与调试,重点关注对抗训练稳定性、梯度惩罚实现及多损失权重平衡策略,以深入掌握WGAN-LSTM在时序建模中的工程应用细节。
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 I2C(Inter-Integrated Circuit)总线是一种在电子设备中广泛应用的串行通信协议,该协议由Philips半导体(现名为NXP半导体)于上世纪80年代提出。I2C总线借助两条线路(时钟线SCL和数据线SDA)完成设备间的控制指令与数据信息的交换,因此它具备多主机与多从机的串行总线特性。在软件层面模拟I2C主从机交互时,常规的IO端口被用于再现I2C主机及从机的通信过程。 I2C总线引脚功能说明: 1. SCL(Serial Clock):时钟线,其时钟信号由主机掌控。 2. SDA(Serial Data):数据线,主要用于承载数据传输。 总线时序规范: - 非活动状态:当总线处于非通信阶段,SDA线保持高电平。 - 总线的线与操作:若多个设备同时接入总线,通过线与逻辑确保任一设备输出低电平,则总线整体呈现低电平状态。 - 数据位稳定性要求:数据位必须在SCL为高电平期间维持稳定状态,而只有在SCL为低电平期间方可发生改变。 - 起始与终止信号的定义:起始信号表现为在SCL高电平期间SDA从高电平转为低电平,终止信号则是在SCL高电平期间SDA从低电平转为高电平。起始信号标志着总线使用周期的起始,终止信号则表示总线使用周期的结束。 - 从机数据处理延时的处理机制:当从机需要额外时间处理数据时,能够将SCL线拉至低电平,促使主机进入等待状态。 - 字节传输与应答机制:一个字节由8位数据加上1位应答位构成。若从机无法应答或已无数据接收需求,将释放SDA线,主机随后产生终止信号。 - 数据帧结构:数据帧以从机地址作为起始,接着是数据传输方向指示位,最后是实际传输...
内容概要:本文研究了基于多智能体一致性演化的孤岛微电网自适应虚拟阻抗容错控制与二次稳态补偿机制,旨在解决孤岛微电网在脱离主网支撑后面临的电压与频率稳定性差、功率分配不均及抗干扰能力弱等关键问题。研究通过构建多智能体系统模型,利用一致性算法实现各分布式电源(DG)间的分布式协同控制,摆脱对中心控制器的依赖,提升系统的自治性与可扩展性。针对线路阻抗差异导致的传统下垂控制功率分配偏差问题,提出自适应虚拟阻抗控制策略,能够在线动态调节虚拟阻抗参数,有效补偿线路压降,实现有功与无功功率的精确按比例分配。为应对通信链路中断或部分DG故障等异常工况,设计了容错控制机制,确保系统在部分节点失效时仍能维持基本运行。同时,引入二次稳态补偿控制,通过多智能体协商消除一次下垂控制产生的静态电压和频率偏差,使系统运行点恢复至额定值。整个控制策略在Simulink环境中进行了详细建模与仿真实现,通过设置负载突变、通信中断、DG投切等多种复杂工况,全面验证了所提方法在提升功率分配精度、改善电能质量、增强系统鲁棒性与容错能力方面的有效性与优越性。; 适合人群:具备电力系统、自动化、电气工程及其自动化等相关专业背景,从事微电网、分布式能源系统、智能电网控制与优化等领域研究的硕士/博士研究生、高校科研人员以及电力行业的工程技术人员。; 使用场景及目标:①应用于孤岛微电网的分布式协同控制策略研究与工程设计,特别是在偏远地区、海岛或应急供电等无法依赖主网的场景;②解决传统集中式控制可靠性低、可扩展性差的问题,以及传统下垂控制因线路参数差异导致的功率分配不准、电压频率偏移过大等核心难题;③提升微电网在面对内部故障和外部扰动时的自治运行能力、系统整体可靠性与容错能力,为构建高韧性、智能化的新型电力系统提供技术支持。; 阅读建议:读者应结合提供的Simulink仿真模型,深入理解多智能体一致性算法的实现逻辑与通信拓扑构建方法,重点关注自适应虚拟阻抗的调节律设计、容错控制的触发与切换逻辑,以及二次补偿控制的迭代收敛过程。建议通过修改仿真参数、设置不同的故障场景进行对比实验,亲身体验各控制模块的作用效果,并分析仿真结果中的功率波形、电压频率曲线及偏差收敛情况,以全面掌握该先进控制策略的设计精髓与性能优势。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧