指针:常见的错误
错误# 1 -未初始化的指针
最简单的方法之一来创建一个指针错误是参考的价值,即使是未初始化的指针和指针还没有指向一个有效的地址。例如:
广告
int * p;* p = 12;
的指针p未初始化和指向一个随机位置在内存中当你声明它。它可以是指向系统堆栈,或全局变量,或者到程序的代码空间,进入操作系统。当你说* p = 12;,程序会尝试写12无论随机位置p点。这个项目可能立即爆炸,或者可能等上半个小时,然后爆炸,或者它可能巧妙地破坏数据在另一个程序的一部分,你可能永远不会发现它。这可以让这个错误很难追踪。确保你初始化所有指向前一个有效的地址非关联化。
错误# 2 -无效指针引用
无效的指针引用时发生一个指针引用的值虽然并不指向一个有效的块的指针。
创建此错误的一种方法是说p =;,当问是未初始化的。p将成为未初始化的指针,* p是一个无效的指针和引用参考。
为了避免这种错误的唯一方法就是画画的每一步计划,确保所有指针指向某个。无效的指针引用导致程序崩溃莫名其妙地因为同样的原因给出错误# 1。
错误# 3 - 0指针引用
零指针引用发生当一个指针指向零在一份声明中使用,尝试引用一个街区。例如,如果p是一个指向一个整数的指针,下面的代码是无效的:
p = 0;* p = 12;
没有阻止指出p。因此,试图从或读或写任何块是一个无效的零指针引用。有好的,有效的理由一个指针指向零,在以后的文章中我们会看到。然而,非关联化这样一个指针是无效的。18新利最新登入
所有这些错误都是致命的一个程序,包含他们。你必须看你的代码,以便这些错误不会发生。最好的方法就是画画的一步一步的执行代码。