debug版本和release版本问题,求大神解答;

liuliufen 2011-12-17 03:15:36
程序A 调用了动态库B中的函数;

程序A将数据准备好,调用B中函数来做计算;

现在当程序A编译选项是DEBUG版本的时候,调用B中函数计算的时候,计算出来的结果是错的;
当程序A的编译选项是RELEASE版本的时候,调用B中函数计算的时候,计算出来的结果是正确的;

我比较过,两种编译选项下,进去的数据完全一样;

不管程序B是DEBUG版本还是RELEASE版本,只要A编译选项是RELEASE版本,计算出来的结果就是正确的;
而只要A编译选项是DEBUG版本,计算出来的结果就不对;


求大神解答;
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-12-17
  • 打赏
  • 举报
回复
跟踪看看
tstorm 2011-12-17
  • 打赏
  • 举报
回复
DEBUG版本比RELEASE版本多了很多东西,比如临时变量DEBUG会初始化为CCCCCCCC,
举个简单的例子
void A()
{
int a;//这里不做初始化,DEBUG会让a = CCCCCCCC而release 则可能是任何一个数
B(a);
printf("a = %d", a);
}

void B(int &n)
{
n ++;
}

当然,你没给例子,也只能这么这么回答你了,自己理解吧,记得散分
柯本 2011-12-17
  • 打赏
  • 举报
回复
可能的问题是你的程序中有下标溢出/内存溢出/野指针等

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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