#include <stdio.h> struct asd { int a; }; int main() { struct asd as; struct asd *asf=(struct asd*)malloc(sizeof(struct asd)); as.a = 99; asf->a = 998; printf("%d\n", asf->a); printf("%d", as.a); return 0; }
#include <stdio.h>
struct asd {
int a;
};
int main()
{
struct asd as;
struct asd *asf=(struct asd*)malloc(sizeof(struct asd));
as.a = 99;
asf->a = 998;
printf("%d\n", asf->a);
printf("%d", as.a);
return 0;
}
1>C:\Users\ZPS\Desktop\VS_C\tou_yuan_item\tou_yuan_item\main.c(8,31): warning C4013: “malloc”未定义;假设外部返回 int 1>C:\Users\ZPS\Desktop\VS_C\tou_yuan_item\tou_yuan_item\main.c(8,57): warning C4312: “类型强制转换”: 从“int”转换到更大的“asd *”
缺少对 <stdlib.h>
头文件的引用,因此导致编译器无法识别 malloc()
函数。此外,还需要注意将 malloc()
返回的指针转换为 struct asd*
类型。
#include <stdio.h>
#include <stdlib.h>
struct asd {
int a;
};
int main() {
struct asd as;
struct asd *asf = (struct asd*)malloc(sizeof(struct asd));
as.a = 99;
asf->a = 998;
printf("%d\n", asf->a);
printf("%d\n", as.a);
free(asf); // 记得释放动态分配的内存
return 0;
}