Xcode是否可以防止c++数组边界运行时问题?



我今天正在钻研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++数组写覆盖临界内存吗?

最新更新