我们都知道指针的流行NULL分配,如:
int *p = NULL;
或
int *p = 0;
我们总是应该在解除引用之前检查指针值,以防止程序崩溃。
1。)但是有没有更好的方法来消除指针?
2。)我知道以下语句与指针无效是不同的(但是无意义),因为它只会写出' 0' 0到指针变量但有人告诉我使用它来获得更好的代码编译器兼容性。这是真的吗?我认为这没有任何意义吗?
memset(&p, 0, size(p));
答案 0 :(得分:1)
使指针指向任何东西的最佳方法
int *p = NULL;
NULL
在<stddef.h>
中定义为实现定义的空指针常量。给定的实现可能有多个空指针常量
所有空指针常量将与0
相互比较。 *p = 0;
还会将p
设置为空指针常量,通常与*p = NULL;
相同
但有没有更好的方法来取消你的指针?
还有其他方法,但不是更好。
某些样式指南会宣传*p = 0;
。最重要的是传达代码清晰度。使用您组的编码标准的样式。最好在团队风格上保持一致。
memset(p, 0, size(p));
错了。 memset(&p, 0, size(p));
应填零p
。 @rodrigo