• 全部
  • 问答

关于指针内存方面的问题

luomingmao129 2008-02-27 10:33:02

#include <stdio.h>

struct S{
int i;
int *p;
};

int main()
{
struct S s;
int *p = &s.i;
p[0] = 4;
p[1] = 3;
s.p = p; // 1
s.p[1] = 1; // 2
s.p[0] = 2; // 3
}

当程序运行到注释3那一行时候就会报错,如果把注释1那行注释掉的话则运行到注释2的时候就报错,请问一下是什么原因?
...全文
49 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
VxD1 2008-02-27
非法访问内存
回复
luomingmao129 2008-02-27
谢谢了
回复
Seanxiaoxiao 2008-02-27
s.p[1] = 1; 这一句把p的值改成0X00000001了
下一句再访问,就造成了内存的非法读取了
回复
baihacker 2008-02-27
http://topic.csdn.net/u/20071102/14/19449798-1147-4c57-816e-78fa0e77b538.html
已经讨论过的,见上面网址!
回复
hy_number_one 2008-02-27
关注
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-02-27 10:33
社区公告
暂无公告