找出下列程序的错误,我只能找出一个.

cgsw12345 2005-05-05 12:23:53
#pragma pack(4)
struct DATA_REPORT
{
UC DataLinkNo;
US Length;
UC DataType;
UC DataValue[20];
};
#define DATA_TEST 10
struct DATA_REPORT &FuncA(void)
{
struct DATA_REPORT DataReport;
DataReport.Length = 24;
DataReport.DataType = DATA_TEST;
strcpy( DataReport. DataValue, “FuncA Send Data For Test! Data length is 20”);
return DataReport;
}

BOOL FuncB(struct DATA_REPORT &DataReport)
{
CHAR tmpData[18];
memcpy(tmpData, DataReport.DataValue, DataValue.Length);
return TRUE;
}
void FuncC(void)
{
struct DATA_REPORT DataReport;
DataReport=FuncA();
FuncB(DataReport);
}
大家帮忙找找.
...全文
161 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhousqy 2005-05-05
  • 打赏
  • 举报
回复
BOOL FuncB(struct DATA_REPORT &DataReport)
{
CHAR tmpData[18];
memcpy(tmpData, DataReport.DataValue, DataValue.Length);
return TRUE;
}
--------------
这函数总是return true,有啥意义?
zhousqy 2005-05-05
  • 打赏
  • 举报
回复
strcpy( DataReport. DataValue, “FuncA Send Data For Test! Data length is 20”);
----------------------------------------
溢出。
oyljerry 2005-05-05
  • 打赏
  • 举报
回复
这里DataValue.Length的长度是不是超过18了
astrophor 2005-05-05
  • 打赏
  • 举报
回复
US和UC都是什么类型
感觉UC是字符型US是整型
DataReport.DataType = DATA_TEST;似乎不合适
astrophor 2005-05-05
  • 打赏
  • 举报
回复
struct DATA_REPORT &FuncA(void)
{
struct DATA_REPORT DataReport;
DataReport.Length = 24;
DataReport.DataType = DATA_TEST;
strcpy( DataReport. DataValue, “FuncA Send Data For Test! Data length is 20”);
//太长,数组越界
return DataReport;  //返回的是临时变量的引用
}
ltc_mouse 2005-05-05
  • 打赏
  • 举报
回复
BOOL FuncB(struct DATA_REPORT &DataReport)
{
CHAR tmpData[18];
memcpy(tmpData, DataReport.DataValue, DataValue.Length);
return TRUE;
}

//操作的是局部变量,没什么意义呀
听海拉拉 2005-05-05
  • 打赏
  • 举报
回复
up
dongpy 2005-05-05
  • 打赏
  • 举报
回复
struct DATA_REPORT &FuncA(void)
{
struct DATA_REPORT DataReport;
。。。。。。。。。。。。。。。。。。。。。
strcpy( DataReport. DataValue, “FuncA Send Data For Test! Data length is 20”);
return DataReport;
}
//strcpy访问数组越界。
//函数局部变量的引用,返回无效。

BOOL FuncB(struct DATA_REPORT &DataReport)
{
CHAR tmpData[18];
memcpy(tmpData, DataReport.DataValue, DataValue.Length);
return TRUE;
}
//memcpy访问数组越界。
内容概要:本文档聚焦于基于Peng-Robinson状态方程的化工热力学计算研究,系统介绍了利用Matlab代码实现纯组分及多组分系统的压缩因子(z因子)和逸度系数的计算方法,并进一步拓展至泡点压力与露点压力的数值求解。资源涵盖了从状态方程推导、非线性方程求根、相平衡条件判断到迭代算法实现的完整技术路线,提供了可运行的Matlab程序代码,有助于深入理解实际工程中物性参数的计算原理与实现过程; 适合人群:具备化工热力学基础知识和一定Matlab编程能力的高校学生、科研人员及工程技术人员,尤其适合从事过程系统模拟、油气田开发、精馏设计及相关领域研究的专业人士; 使用场景及目标:① 掌握Peng-Robinson方程在真实气体物性计算中的应用;② 实现多组分混合体系的相平衡计算与泡/露点预测;③ 为Aspen Plus等商用流程模拟软件提供底层算法验证与教学参考;④ 支持科研论文复现、课程设计、毕业设计及工业过程优化中的热力学数据支撑需求; 阅读建议:建议读者结合经典化工热力学教材同步学习,重点理解立方型状态方程的根判别、迭代收敛策略与相平衡准则的数学表达,动手调试并运行所提供的Matlab代码以掌握算法细节,还可将其扩展应用于其他状态方程(如SRK、vdW)的对比分析研究。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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