程序运行bug——————————

qq_47509139 2024-05-30 12:41:44
		case 'a': {										
			int i = 0;
			while (algs[i].joinAlg) {
				printf("\noptarg = %s,algs[i].name=%s\n",optarg,algs[i].name);
				if (strcmp(optarg, algs[i].name) == 0){
					printf("\noptarg = %s,algs[i].name=%s\n",optarg,algs[i].name);
					fflush(stdout);
					strcpy(input->alg.name, algs[i].name);
					input->alg.joinAlg = algs[i].joinAlg;
					break;
				}
				i++;
			}
		}
			break;

输出

optarg =  weqe,algs[i].name=HJC

optarg =  weqe,algs[i].name=HJC                   不一样的字符串却进入了if语句块。。。。

调试过程中发现没有执行if语句,但是条件改为false后循环正确进行。。。。

please help me!!!!!

更新:目前考虑是编译时采用O3优化的问题

...全文
458 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
深东编程 2024-07-20
  • 打赏
  • 举报
回复

是不是别的地方有内存越界的问题。

埃博拉酱 2024-06-20
  • 打赏
  • 举报
回复

优化不会破坏一个正确的程序的逻辑,但它会让一个地方产生的错误在另一个地方浮现出来。你的代码错误很可能不是发生在你所展示的这一段。

294,164

社区成员

发帖
与我相关
我的任务
社区描述
C++领域交流社区,旨在为大家提供一个文明交流,互相探讨兴趣爱好的环境,欢迎各位大佬加入。
c++ 个人社区 广东省·深圳市
社区管理员
  • 桃花键神
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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