c语言,c++,请问我这个怎么错了?

#include"stdio.h"structstr{inta;charb;};str*a=(str*)malloc(sizeof(str));voidmain(){pr... #include "stdio.h"

struct str{
int a;
char b;
};
str *a=(str*)malloc(sizeof(str));

void main()
{
printf("%d",a[0]);
printf("%d",a[1]);

}
展开
 我来答
风若远去何人留
2017-01-12 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450127
专业C/C++软件开发

向TA提问 私信TA
展开全部

a是结构体指针。 

你只申请了一个结构体大小的空间, 却访问了两个

也就是说 ,只有a[0]是合法的


而且 a[0]中两个元素, 是a[0].a 和a[0].b

所以 这里应该是

struct str{
    int a;
    char b;
};


void main()
{
    struct str *a=(struct str*)malloc(sizeof(struct str));
    printf("%d",a[0].a);
    printf("%d",a[0].b);

}
更多追问追答
追问

追答
加一个头文件
#include
还不行的话 检查一下是不是有汉语标点吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式