gpt4 book ai didi

c - 我尝试在结构中使用 malloc 分配内存但它不起作用?为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:39 25 4
gpt4 key购买 nike

## Code to read general information ##
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct{
char *name =(char*)malloc(20);
int age;
int id;
}info;
main()
{
info a;
printf("Enter Name :");
scanf(" %[^\n]",a.name);
a.age=19;
a.id=11700055;
printf("Name :%s\nAge :%d\nId :%d\nSize of info
:%d\n",a.name,a.age,a.id,sizeof(a));
return 0;
}




/image/WoA0T.png

这段代码有什么问题? 它显示错误,我不明白,比如信息中没有名为“name”的成员?

还说name,age,id不是info的成员。

最佳答案

在结构声明中,您正在分配不允许的内存。

如果你需要里面的数组

typedef struct{
char name[20];
int age;
int id;
}info;

或者你可以这样做

#define MAXLEN 20

typedef struct{
char* name;
int age;
int id;
}info;

info p;
p.name = malloc(MAXLEN);
if(!p.name){ perror("malloc");exit(1);}
...

应该是 int main(void) 而不是 main()

关于c - 我尝试在结构中使用 malloc 分配内存但它不起作用?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com