把pointer定义未NULL用来以后判断是否初始化
#include <stdio.h>
#include <stdlib.h>
// Some struct
typedef struct{
void *ptr;
int x;
int *y;
}Display;
void CloseDisplay(Display **dpy)
{
*dpy=NULL; // Compiler does not allow that
dpy = NULL; // Correct !
}
/.../
if ( dpy == NULL)
注意代码中
*dpy=NULL;
是错误的,因为*dpy代表的是数据,而不是指针。所以不能用它给指针赋值。
本文探讨了在C语言中对指针进行赋值时的一个常见误区:将NULL直接赋值给指向结构体的指针变量。通过示例说明正确的做法,并解释了为什么直接对指向结构体的指针的成员赋NULL是错误的。
1907

被折叠的 条评论
为什么被折叠?



