C语言结构体指针未分配内存为什么可以直接使用?

da2650638 2012-09-24 07:45:30
结构体定义:
typedef struct
{
int i;
char c;
}Pointer;
主函数:
int main()
{
Pointer *p;
p->c = 'a';
p->i = 10;
printf("%d %c \n",p->i,p->c);
return 0;
}
打印结果是:10 a
没有错误,请问这是怎么回事?
...全文
493 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
逆风而飞 2012-09-25
  • 打赏
  • 举报
回复
汗,这个是直接由系统分配,你又不是在开发windows程序
linuxblack125125 2012-09-25
  • 打赏
  • 举报
回复
什么是好的程序?什么是错误的思想?不是一次运行结果就能说明白的!
Damn_boy 2012-09-25
  • 打赏
  • 举报
回复
胆子太大了
赵4老师 2012-09-25
  • 打赏
  • 举报
回复
做违法的事不一定每次都被抓。
hu7324829 2012-09-25
  • 打赏
  • 举报
回复
gcc 运行时 段错误.
baichi4141 2012-09-25
  • 打赏
  • 举报
回复
没有分配给你的内存,你也可以任意访问
不过等你的使用和系统的使用相冲突的时候,后果自负
左眼看到鬼 2012-09-25
  • 打赏
  • 举报
回复
用gcc,g++运行时都是段错误。
AnYidan 2012-09-25
  • 打赏
  • 举报
回复
换 c++ 的 编译器 试试!
tcm86079572 2012-09-25
  • 打赏
  • 举报
回复
应该是指针随机分了个内存 恰好呢 这个内存能进行操作 !
wanglu343280746 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
做违法的事不一定每次都被抓。
[/Quote]
++
ouPuso 2012-09-25
  • 打赏
  • 举报
回复
指针是地址的容器,即使没有分配也不代表里面没有值,只不过是没有意义的值而已.
读没有问题并不代表写也没有问题,写现在没有问题并不代表程序就没有问题
AIGPTchina 2012-09-24
  • 打赏
  • 举报
回复
指针是在堆里,必须申请。申请后要制定一个地方给他。
liduboss 2012-09-24
  • 打赏
  • 举报
回复
指针变量默认初始化并不一定为NULL(不同的编译器有不同的效果)。
da2650638 2012-09-24
  • 打赏
  • 举报
回复
#1楼麻烦说的具体一点,没听明白......
sublimepan 2012-09-24
  • 打赏
  • 举报
回复
p有个初始值,该值对应的内存恰好可以操作呗。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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