使指针指向任何东西的最佳方法

时间:2016-03-08 18:11:23

标签: c pointers

我们都知道指针的流行NULL分配,如:

int *p = NULL;

int *p = 0;

我们总是应该在解除引用之前检查指针值,以防止程序崩溃。

1。)但是有没有更好的方法来消除指针?

2。)我知道以下语句与指针无效是不同的(但是无意义),因为它只会写出' 0' 0到指针变量但有人告诉我使用它来获得更好的代码编译器兼容性。这是真的吗?我认为这没有任何意义吗?

memset(&p, 0, size(p));

1 个答案:

答案 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