对象创建:堆栈与堆
在 C 中创建对象时,您选择的语法会影响它是驻留在堆栈上还是驻留在堆栈上堆。虽然提供的代码片段中没有明确引用这个概念,但了解有效的内存管理非常重要。
堆栈上的对象创建
对象代码;在堆栈上创建一个对象。对象的存储持续时间是自动的,这意味着它存在于声明它的范围内。当作用域结束时,对象也会结束。
在堆上创建对象
要在堆上分配对象,我们使用 Object * o; o = 新对象()。这会在堆栈上创建一个指向堆上对象的指针。对象的存储持续时间是动态的,在运行时分配,并且必须手动释放(通过删除)以避免内存泄漏。
创建指针并存储堆对象
代码中Object * o; o = new Object(),指针o是在栈上创建的,但它指向的是在堆上创建的对象。这允许我们通过指针间接访问堆对象。
全局对象
全局变量驻留在堆栈和堆之外的不同内存区域。当 Object * o 被声明为全局变量时,指针本身就存储在这个全局内存区域中。
存储时长
在 C 中,存储时长决定对象分配:
以上是堆栈与堆:C 对象位于何处?的详细内容。更多信息请关注PHP中文网其他相关文章!