当前位置:首页 > 内存 > 正文

c语言内存四区

  • 内存
  • 2024-06-27 08:28:25
  • 3574

一、C语言中什么叫内存泄露?一般来说,我们常说的就是记忆力减退。堆内存是指程序从堆中分配的内存,无论大小(内存块的大小可以在程序执行过程中确定),使用后必须显式释放。应用程序一般会使用malloc、relock、new等函数,使用完毕后,程序负责释放或释放内存块。我们将这个内存泄漏说一下。以下小程序演示了堆内存泄漏:
voidMyFunction(intnSize)
{
char*p=newchar[nSize];
if(!GetStringFrom(p,nSize)){
MessageBox(“error”);
返回;
}
…//使用bip的字符串点,
delete[]p;
}
当GetStringFrom()函数返回零时,指针p指向的内存不会被释放。这是发生内存泄漏的常见情况。程序在进入时分配内存,在退出时释放内存,但C函数可以从任何地方退出,因此如果退出时没有释放要释放的内存,就会发生内存泄漏。