
有关用指针给结构体赋值的问题
我定义了这样一个结构体:typedefstructst{intx;inty;};然后生成了一个指针structst*p=(structst*)malloc(sizeof(...
我定义了这样一个结构体:
typedef struct st{
int x;
int y;
};
然后生成了一个指针
struct st *p =(struct st *)malloc(sizeof(struct st)*5);
并想为由用户输入指针所指的空间的值:
int x = 0, y = 0;
for(int i = 0;i < 5; i++)
{
scanf("%d,%d",&x,&y);
p -> x = x;
p -> y = y;
}
结果却是显示一大堆乱七八糟的数后内存分配出错,这是为什么,期待高手指教! 展开
typedef struct st{
int x;
int y;
};
然后生成了一个指针
struct st *p =(struct st *)malloc(sizeof(struct st)*5);
并想为由用户输入指针所指的空间的值:
int x = 0, y = 0;
for(int i = 0;i < 5; i++)
{
scanf("%d,%d",&x,&y);
p -> x = x;
p -> y = y;
}
结果却是显示一大堆乱七八糟的数后内存分配出错,这是为什么,期待高手指教! 展开
1个回答
展开全部
p -> x = x;
p -> y = y;
改成
p[i].x = x;
p[i].y = y;
或将
for(int i = 0;i < 5; i++)
改成
for(int i = 0;i < 5; i++,p++)
p -> y = y;
改成
p[i].x = x;
p[i].y = y;
或将
for(int i = 0;i < 5; i++)
改成
for(int i = 0;i < 5; i++,p++)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |