在 C 中声明结构时,说:
typedef struct my_stuct {
int x;
float f;
} STRT;
如果我们想创建这个结构的一个实例并使用它,我们需要显式调用 malloc,获取一个指向这个结构的内存位置的指针,然后才能实际初始化/使用结构的任何成员:
STRT * my_struct_instance = (STRT *) (malloc(sizeof(STRT)));
但是,如果我声明一个原始数据类型(比如“int a;”)然后想要对其进行初始化(或对其执行任何其他操作),我不需要在执行任何操作之前通过调用 malloc 显式为其分配内存空间对其进行操作:
// we do not need to do a malloc(sizeof(i)) blah blah here. Why?
i = 10;
你能解释一下这种不一致的原因是什么吗?谢谢!