EXata代码移植糗事之动态数组初始化

本文讲述了作者在将代码从QualNet移植到EXata时遇到的一个问题,即EXata运行时因动态数组未正确初始化导致程序停止。经过一系列排查,最终发现是EXata中动态数组指针rcv未初始化,而在QualNet中已初始化。修复此问题后,代码成功运行。文章强调了移植过程中的细心检查和调试的重要性。
摘要由CSDN通过智能技术生成

先说点题外话。

把代码从QualNet移植到EXata的过程中,需要逐个函数、逐个数据结构的核对,因为两个软件有些位置会有细微的差别。如获取节点的网络层数据,在QualNet中是:

NetworkDataIp* ip = node->networkData.networkVar;	

 在EXata中是:

NetworkDataIp* ip = node->m_networkData->get_networkVar();	

因为在Node数据结构中,EXata把网络层数据m_networkData以NetworkData *指针形式定义,且在NetworkData数据结构中,networkVar是私有变量,必须用函数get_networkVar()获取而不能直接用node->m_networkData->networkVar获取。

另外一个需要格外注意的是传输层函数,有些EXata中有,QualNet中没有,有些则刚好相反。总之是把每个调用的函数都搜索一下定义,看看有没有,看看参数是否一样。总体上改动不大,很快就能完成移植。

问题来了。

本来一切顺利,可是好不容易编译成功(EXata编译一次需要两个多小时,QualNet十几分钟就能搞定,有条件的朋友可以在QualNet上开发,然后移植到EXata

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值