Vij*_*jay 4 c c++ memory-management
这个问题最近在接受采访时向我询问,我感到困惑!
"How do you initialize a structure in the heap memory ?"
有人可以告诉我这个问题的正确答案吗?
顺便说一句:堆栈和堆内存究竟有何不同?看一下上面的问题,有些人也可能会问我how do you initialize a structure on a stack memory?.
这可能是一个基本问题,也可能是一个错误的问题,但我只是好奇才知道!
有人可以帮忙吗?
堆栈用于分配局部变量,在动态分配内存时使用堆,就像使用malloc()一样.无论哪种情况,您都需要确保初始化结构.你可以使用类似calloc()的东西从堆中分配你的内存,它自动将它归零(malloc没有).并且堆栈上的变量也没有初始化(如果内存服务).
堆栈的生命与定义它的函数实例完全一样 - 当函数intance返回时,该内存可以自由回收(如果它包含一个正确的C++对象w /析构函数,那么,dtor将被调用).堆一直存在,直到明确释放.
"你如何初始化一个结构体"(在任何一种内存上! - )都是一个特殊的问题 - 显然是通过它在C++中自动调用ctor(如果有的话),与memcpy其他类似的东西 - 存在于堆栈或堆中这里没什么区别.