发布网友 发布时间:2022-04-24 16:00
共2个回答
热心网友 时间:2023-10-21 03:17
这实际上是一个语法规范的问题。
p=0;从代码运行上看没什么意义,但这么做助于代码的稳健性和可维护性。
就象我们定一个函数时,一般都会要求在函数开头检查一下参数值的取值范围是否合法一样。都是出于代码重用和后期维护时的稳健性考虑。
这里指针p,在delete之后,分配的空间已经被释放,但p的指针值还是指向原地址空间,如果不令其指向NULL(0)的话,之后的代码如果需要使用p时,会无法判断p的空间是否可用,而失去为它重新分配空间的机会,甚至可能造成内存越界访问的错误。
热心网友 时间:2023-10-21 03:18
delete之后的指针指向一个不确定的位置,叫悬垂指针,如果后面不经意引用了,会导致程序崩溃。置0使其成为空指针,后面的程序可通过判断该指针是否为NULL来确定它是否有效。