调试断言失败,调试还是正常的

调试断言失败,调试还是正常的,运行之后输入数字按enter之后就成这样了,第一次学习c语言,有点懵

img

img

img

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7457513
  • 你也可以参考下这篇文章:【C】写一个函数,将两个字符串连接
  • 除此之外, 这篇博客: 大一c语言图书管理系统,但是图书信息的查找功能虚拟执行结果做不出来,麻烦各位大佬指导一下中的 导入 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

  • 以下回答由chatgpt基于相关博客总结生成:

    针对断言失败但程序仍能正常运行的情况,其实可以采取以下几个方法解决:

    1. 仔细检查代码是否有问题。这种情况通常是因为代码的逻辑出现了问题,导致断言失败。可以逐行检查代码,找出具体是哪一行出了问题,然后针对性地进行修改。

    2. 在断言失败后加上输出语句,打印出相关变量的值,帮助定位问题所在。可以使用printf函数来输出变量的值,同时加上一些提示信息,方便查看。例如:

    assert(a != b); // 假设断言是这么写的 if (a == b) { printf("a=%d, b=%d\n", a, b); // 这里可以加上一些其他的处理逻辑 }

    1. 关闭断言。如果实在找不到问题所在,或者这个问题对程序的运行没有影响,可以在编译时关闭断言功能。在makefile或者其他编译脚本中加上"-DNDEBUG"选项即可。例如:

    gcc -DNDEBUG -o main main.c

    这样就会关闭所有断言功能,注意加上该选项要慎重,因为这样可能会导致一些隐藏的问题没有被发现。

这个跟程序没关系,跟你使用编译工具有关系~推荐用vscode,不要再用VS了。