在线急等!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;
}
运行出现错误,求高人解答!分析一下是什么原因,谢谢!如何使用
或者正确的理由!或者出错的原因!不要改变原有的程序代码,只是测试这段代码 展开
{
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;
}
运行出现错误,求高人解答!分析一下是什么原因,谢谢!如何使用
或者正确的理由!或者出错的原因!不要改变原有的程序代码,只是测试这段代码 展开
3个回答
展开全部
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越界了。。。。。。
}
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 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
少了个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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
VC下运行没错,你加没加#include<stdio.h>这个头文件?你没有输出,是想测试什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询