我今天正在钻研c++,我想知道这样做会给我的计算机带来什么风险。如果我在数组数学上搞砸了Xcode能阻止我破坏我的东西吗?像我所知道的其他c++编译器一样,它在编译时不会捕获这种性质的错误。它是否可能在测试期间为我的程序分配安全的内存量,以便我不会偶然重写任何关键内存?
Xcode是一个IDE,编译任务委托给其他人,在这种情况下,g++或clang++。它们都不做任何绑定检查(至少默认情况下没有),但是…
任何现代操作系统(这甚至包括Mac OS X),由于虚拟内存机制,将防止任何损坏系统或其他东西-最坏的情况下,你可以做的越界数组访问是崩溃你自己的程序。
如果你特别偏执,你可以在虚拟机中运行你的程序。
XCode能防止你写出糟糕的代码吗?它有一些静态分析:https://developer.apple.com/library/ios/recipes/xcode_help-source_editor/chapters/Analyze.html
c++数组的越界索引会对你的计算机造成物理伤害吗?非常不可能,但不是不可能:https://security.stackexchange.com/questions/65153/is-there-any-virus-that-can-cause-physical-damage
没有编译器你知道检查c++数组边界吗?如果你想检查数组边界,不要使用c++数组,使用std::vector at()
你的c++数组写覆盖临界内存吗?