在C中使用结构时分配内存的时间?在声明、定义或初始化时?
// Here is declaration
typedef struct MyStruct MyStruct;
// Here is definition
struct MyStruct {
int a;
int b;
};
int main(void) {
//This declares and initializes variable of type MyStruct
MyStruct ms = {.a=100, .b=120};
return 0;
}
当我们实例化相应stuct类型的对象时是否保留内存,例如在上述情况下,在main函数中声明一个变量MyStruct ms。
最佳答案
示例中的MyStruct ms
之类的局部变量是在堆栈上分配的。大多数编译器都会在prologue中为这些变量预留空间。即堆栈帧(在本例中为main
函数)被构造时。
此外,这里还有一个关于堆栈内存的good article。
关于c - 在C中使用结构时的内存分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54477168/