为啥我只能在 G++ for Ubuntu 中获得垃圾值?
Posted
技术标签:
【中文标题】为啥我只能在 G++ for Ubuntu 中获得垃圾值?【英文标题】:Why do I get garbage values only in G++ for Ubuntu?为什么我只能在 G++ for Ubuntu 中获得垃圾值? 【发布时间】:2016-12-11 20:26:45 【问题描述】:我在使用 g++ 编译器时遇到了这个问题。尽管我想摆脱这些垃圾值,但我得到了看似随机的垃圾值(蓝色突出显示)和所需的输出(绿色突出显示)。当我在 TurboC++ 编译器上运行相同的程序时,它运行完美(橙色突出显示),没有任何垃圾值。谁能向我解释为什么会发生这种情况以及如何摆脱它?我对 Linux 相当陌生,因此非常感谢您提供详细的解释。
a) G++ 编译器垃圾值
b) TurboC++ 编译器完美执行。
【问题讨论】:
您的代码中可能存在错误。请edit您的问题提供minimal reproducible example在问题本身和作为文本,以便我们可以诊断所述错误。 @BaummitAugen 我在代码中没有实际的错误。它编译完美。我什至得到了想要的输出。我就是无法摆脱垃圾值。 Turbo C++ 和 g++ 之间的差异是巨大的,大约 20 年,并且 C++ 语言正在标准化。人们几乎应该期望它们以不同的方式工作。 欢迎来到 ***.com。请花一些时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请take the tour 和read about how to ask good questions。最后请学习如何创建Minimal, Complete, and Verifiable Example。 是的,您的代码中存在错误。仅仅因为它编译并不意味着它可以工作。仅仅因为它似乎起作用并不意味着它确实起作用。 “垃圾值”是您的代码中存在错误的确定标志。 【参考方案1】:您正在访问尚未初始化的数组。
而不是i=c
你应该i=c-1
【讨论】:
如果回答了您的问题,则标记为答案以上是关于为啥我只能在 G++ for Ubuntu 中获得垃圾值?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我只能从 statsmodels OLS 拟合中获得一个参数
为啥 Google 的“人脸识别”功能只能在 Picasa WEB 中使用,而 Picasa for PC 没有?
为啥 for..of / for..in 循环可以使用 const 而普通的 for 循环在 JS 中只能使用 let 或 var 作为其变量? [复制]