在线急等!C语言的问结构体的问题

structS{inti;int*p;};voidmain(){Ss;int*p=&s.i;p[0]=4;p[1]=3;s.p=p;s.p[1]=1;s.p[0]=2;}... struct S
{
int i;
int * p;
};
void main()
{
S s;
int * p = &s.i;
p[0] = 4;
p[1] = 3;
s.p = p;
s.p[1] = 1;
s.p[0] = 2;
}
运行出现错误,求高人解答!分析一下是什么原因,谢谢!如何使用
或者正确的理由!或者出错的原因!不要改变原有的程序代码,只是测试这段代码
展开
 我来答
辰星落羽
2010-12-29 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:130万
展开全部
lz威武,楼主实在太强了,这段代码一直在超界,重来没停过。。。。
void main()
{
S s;
int * p = &s.i; //p指向结构体s.i
p[0] = 4; // s.i=4
p[1] = 3; //s.p=3(ps: lz你将一指针指向的地址的值赋为3,你想直到那去啊,那里都是操 作系统的地盘啊)
s.p = p; //将p的地址付给s.p
s.p[1] = 1; //犀利啊,有上述关系可知:s.p[1]==p[1]==s.p的地址,您居然又把一指针指向的地址的值赋为1,牛,真牛。。。
s.p[0] = 2; //调用非法地址,s.p越界了。。。。。。
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
等待吾志
2010-12-29 · TA获得超过163个赞
知道小有建树答主
回答量:393
采纳率:66%
帮助的人:120万
展开全部
少了个struct 正确应该为:
struct S
{
int i;
int * p;
};
void main()
{
struct S s;/*这句错了!*/
int * p = &s.i;
p[0] = 4;
p[1] = 3;
s.p = p;
s.p[1] = 1;
s.p[0] = 2;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七翎道君
2010-12-29
知道答主
回答量:30
采纳率:0%
帮助的人:8.8万
展开全部
VC下运行没错,你加没加#include<stdio.h>这个头文件?你没有输出,是想测试什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式