Bla*_*ary 29 c malloc structure
我的任务是创建一个为结构动态分配内存的程序.通常我们会用
x=malloc(sizeof(int)*y);
Run Code Online (Sandbox Code Playgroud)
但是,我对结构变量使用什么?我认为不可能这样做
struct st x = malloc(sizeof(struct));
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?谢谢!
dir*_*tly 65
我的最爱:
#include <stdlib.h>
struct st *x = malloc(sizeof *x);
Run Code Online (Sandbox Code Playgroud)
注意:
x 必须是指针你做得不对. struct st x是一个结构,而不是指针.如果你想在堆栈上分配一个,那很好.对于在堆上分配,struct st * x = malloc(sizeof(struct st));.
这是完全可能的——而且是正确的方法
假设您想输入
struct st *x = malloc(sizeof(struct st));
Run Code Online (Sandbox Code Playgroud)
附:即使您知道所有内容的大小,您也必须执行 sizeof(struct) ,因为编译器可能会填充结构以便成员对齐。
struct tm {
int x;
char y;
}
Run Code Online (Sandbox Code Playgroud)
可能有不同的尺寸
struct tm {
char y;
int x;
}
Run Code Online (Sandbox Code Playgroud)