c - 在 C 中使用结构时的内存分配
问题描述
在 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;
}
当我们实例化相应结构类型的对象时是否保留内存,例如在上述情况下在主函数中声明变量 MyStruct ms。
解决方案
MyStruct ms
像您的示例中的局部变量是在堆栈上分配的。大多数编译器会在它们的序言中为这些变量保留空间。即当main
构建堆栈帧(在这种情况下为函数)时。
更多信息,这里是一篇关于堆栈内存的好文章。
推荐阅读
- javascript - 如何使用 querySelector 点击 svg?
- java - 如何在 JEE 实体管理器中使用来自 testcontainer 的数据源
- c# - 如何将 XML 字符串替换为另一个 XML 字符串
- scala - 无法在 Spark 中使用带有管道分隔符的 str_to_map
- microcontroller - 可以“交换 nybble”和“字节掩码”技巧将多字节逻辑移位 4 比使用移位链的天真方法快得多
- python - Pygame 按键与指南的工作方式不同
- autodesk-forge - 关闭剖面线填充
- c# - EF Core 中必需到可选关系(一对零或一)的最佳方法是什么?
- android - 如何使用反应原生视频从内部存储访问我的视频?
- c# - 如何在 Blazor 中使用 Virtualize 组件实现分组(可扩展组)?