【发布时间】:2010-12-22 10:52:42
【问题描述】:
我在我的程序中越来越多地使用指针,在阅读指针时,我发现的每一个指南或教程都说不正确地使用指针可能会产生“灾难性”的结果。
现在,我遇到了一些大内存泄漏的案例,并且指针取消引用了错误的指针变量,返回了不正确的值,但除此之外,没有发生任何“灾难性”事件;就像我的电脑和/或其他程序崩溃一样。
谁能给我一个简单的代码示例,它肯定会产生“灾难性”的结果,也许还有一些发生的背景故事,以防你不小心使用了那段代码?我所说的“灾难性”结果是指可能会干扰其他程序或操作系统并可能导致它们崩溃的代码。
【问题讨论】:
-
定义“灾难性”。滥用指针可能会导致程序中出现各种大错误,但在现代计算机上,最糟糕的情况是程序无法按预期运行。
-
好吧,不要操作带有指针错误的程序的 X 光机。
-
@Peter Zion:我从各种来源阅读和听说过,不正确的指针使用实际上会导致您的系统崩溃。对于当今的计算机来说,这不再适用吗?也:编辑问题
-
@Peter Zion:使用无效指针是未定义的行为,它可以以任何方式表现出来。例如,如果您的程序使用 C++ 运行时,该运行时具有删除所有文件的函数,该函数可能会被调用。
-
@Arcenio:请看这个真实的答案:stackoverflow.com/questions/908872/… 通过网络发送敏感数据有时甚至比“崩溃”您的系统更糟糕。
标签: c++ memory pointers memory-management unsafe-pointers