我最近开始用C语言编程,我注意到,有时,当我不小心将一个数组指向'-1‘时,该数组会转到最后一个元素。这一切为什么要发生?
编辑:举个例子,我正在构建一个森林火灾模型,有时,当一棵燃烧的树在森林的边缘时,新的燃烧的树会在森林的另一边弹出,而不会抛出任何错误。
发布于 2013-04-14 10:12:47
这是未定义的行为。
允许编译器生成demons fly out of your nose。
在实践中,这通常会在数组之前访问内存,这可能会崩溃。
发布于 2013-04-14 10:17:10
它们不会,只是C不会检查你是否在数组之外;当你这样做的时候,结果是不可预测的。看看this site,看看链接的教程(旧的,但很好)。还有一个指向C语言指针和数组教程的链接。
C语言是为最大限度地提高性能而设计的语言,因此假定程序员确切地知道她在做什么。没有训练轮,没有安全网。当你习惯了这一点时,你就解放了;直到那时,你才会变得恐惧。坚持下去,了解正在发生的事情,并享受乐趣。
https://stackoverflow.com/questions/15995014
复制相似问题