当前位置:首页 > 问答大全 > C问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

C问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

被浏览: 0次 2023年06月06日 06:41
热门回答(5个)
游客1

main()
{
i *s;//这一句铅友不会分配结构体空间,只是定义了一个指针而已
改成:
i iStu;
s = &iStu;

s->h->f->d->b->data=9;
printf("%d\n",s->h->槐悄槐运搭f->d->b->data);
}

游客2

s,以灶尺及s里面的h,f,d,b这些指针都没有分配内存

i *s = (i*)malloc(sizeof(i));

s->h = (g*)malloc(sizeof(g));

....

都分配好内存了谨差才能写隐晌高
s->h->f->d->b->data=9;

游客3

同意一楼,报错说明你越界访问~

游客4

s只是一个指针,没有被分配空间

游客5

二楼首樱旦正解
typedef struct
{
int data;
}a;
typedef struct
{
a *b;
}c;
typedef struct
{
c *d;
}e;
typedef struct
{
e *f;
}g;
typedef struct
{
g* h;
}i;
#include者扰
#include <颂芹malloc.h>

void main()
{
i *s = (i*)malloc(sizeof(i));

s->h = (g*)malloc(sizeof(g));
s->h->f = (e*)malloc(sizeof(e));
s->h->f->d = (c*)malloc(sizeof(c));
s->h->f->d->b = (a*)malloc(sizeof(a));
s->h->f->d->b->data=9;
printf("%d\n",s->h->f->d->b->data);
}