讲一个指向结构体的指针设为空后,结构体里面的变量也为空吗?

SHOUYU2 2010-12-20 04:26:45
判断函数如下:为什么出错?
#include <stdio.h>
#include <string.h>
#include<stdlib.h>

struct node
{
char *alpha;
int a;
int b;
};
main()
{
struct node *test;

test=NULL;
if(test->alpha==NULL)
puts("kong");
else puts("bu kong");
getchar();
}
...全文
629 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
padmepingouin 2010-12-20
  • 打赏
  • 举报
回复
程序会崩溃的 我试过
SHOUYU2 2010-12-20
  • 打赏
  • 举报
回复
嗯,就是说指针已经没有了,找不到地址了,就不能访问这个地址指向的结构体里面的成员
bbk_dzw 2010-12-20
  • 打赏
  • 举报
回复
朋友 ,你对指针的实质可能还不太清楚啊!

test 是指向一段内存区,假设test里存放的 0x80000000 那么从这个地址开始存放着:
char *alpha;
int a;
int b;
这3个变量,test=NULL 那么0x80000000这个地址的东西还是没变的,就是说它结构体的东西还在
但test已经是NULL了 你通过test如何访问0x80000000处的东西?
hz张三 2010-12-20
  • 打赏
  • 举报
回复
皮之不存毛将焉附???
bdmh 2010-12-20
  • 打赏
  • 举报
回复
test=NULL;//你都给test搞没了,下面怎么访问
if(test->alpha==NULL)
jackyjkchen 2010-12-20
  • 打赏
  • 举报
回复
test为空后,指针指向无效地址,再用test->alpha找成员当然崩溃

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧