如何为结构变量释放内存

SPB*_*SPB 5 c++

typdef struct _structname  
{  
    int x;  
    string y;  
} structure_name;

structure_name variable;
Run Code Online (Sandbox Code Playgroud)

现在我访问variable.xy.使用它后,我如何解除分配或释放使用的内存variable

实际上,当我在做变量时,内存被分配.y ="sample string".因此,=运算符分配导致问题的内存.我现在该如何解决?

Pau*_*ell 7

您已在堆栈上分配了结构.当它超出范围时,它将使用的内存将被释放.如果你想控制何时释放内存,你应该调查动态内存分配.


Naw*_*waz 5

只有在动态分配内存时才需要释放内存.

动态分配使用new或完成malloc,并且释放分别使用deletefree完成.

如果您的程序不使用newmalloc在任何地方使用,那么您不需要使用deletemalloc任何一个.注意会有许多许多delete,因为有new.而同样是真正的mallocfree也.

也就是说,在一个程序中:

  • 执行 new语句等于多少执行的 delete 语句!
  • 执行 malloc语句等于多少执行的 free 语句!

如果执行的 数量较少delete或者free,那么您的程序是泄漏内存.如果有较少的数量执行 newmalloc那么你的程序很可能会崩溃!