## 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 :%snAge :%dnId :%dnSize of info
:%dn",a.name,a.age,a.id,sizeof(a));
return 0;
}
https://i.stack.imgur.com/WoA0T.png
这段代码有什么问题? 它显示了我不明白的错误,例如信息没有名为"名称"的成员?
它还说姓名,年龄,ID不是信息的成员。
在结构声明中,您正在分配不允许的内存。
如果你需要里面的数组
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()
.