int *pt/* pt是一个指向整数的指针,未初始化时,存储该指针的地址&pt是随机的,可以用printf("%p",pt)来验证。 就是说,该指针仿孙仔备汪可能指向任意地方,凯败包括系统使用的内存区,虽说这不是你需要的。当*pt = 5时,就有 可能造成无法预料的结果。*/你可以在定义指针的时候直接初始化,语句如下int *pt = 5同样,也可以这样这样写:char *i = "Hello"
FILE *fp_in = NULL, *fp_out = NULLif(fp_in)fclose(fp_in)
if(fp_out)fclose(fp_out)
把你那三扰薯族缓弊行,手老改成我这样的,因为可能没有初始化啊。。。
STUDENT*p
做到这一步的时候系统就开了正隐旅一个STUDENT空间,长度就是STUDENT的长度。
如果你想让p的值为NULL的话你可以直接给p赋值NULL就可以了
比如
p=NULL
或者return
NULL
我一直不携简理解举凳
for(i=0i<=50i++)
p->chEmail[i]=NULL
是在干啥,
ZeroMemory(p,sizeof(p))这句应该就是把p指向的地址STUDENT长度的字节全赋0了
我一般喜欢用memset(p,0,sizeof(p))头文件是<memory.h>
p->chEmail[i]=NULL
NULL是空指针,但是这么运算的时候会变成0。
最好对char类型赋空值的时候使用'\0'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)