在C中分配的结构的内存是什么时候?是在我声明它还是在创建它的实例时?另外,为什么静态变量不能在结构中使用?
答案 0 :(得分:1)
当你定义一个你没有为它分配内存的结构时,这就是为什么你可以使用typedef来避免编写struct my_struct_name的原因。 在定义结构时,您需要声明一种数据类型,这就是为什么他们在声明该结构的实例之前不会占用数据。
struct point{ int x; int y; };
这不会占用空间,直到在函数或main中声明一个例如
int main(void){
struct point mypoint1,mypoint2;//THIS IS WHEN MEMORY STARTS BEING ALLOCATED
return 0;
}
关于静态,我不认为实际上有一点要向结构声明静态吗?为什么要对结构进行静态变量?