c - 持久化malloc创建的内存块

标签 c memory malloc free memory-corruption

有个问题想请教,是在看静态变量的概念时产生的。如果我在一个函数中创建一个分配的内存块,使用 malloc,然后函数返回到 main,而没有使用 free()在分配的内存上,该内存块是否容易受到程序过程中变化的影响?我的意思是,在我离开函数后,内存块是否有可能被另一个进程覆盖,而我想以我的方式使用它和/或编辑它,或者它是否被类似的东西“锁定”,直到我免费吗?在我释放它之前,是否有可能将该 block 视为没有数据?

最佳答案

一旦您malloc了一定数量的字节,除非您显式释放它,否则它将在您的程序的整个生命周期中一直存在。

无论您在哪个函数中执行了 malloc,如果您有一个有效的指向 malloc 的指针,内存将一直存在,供您在程序中的任何地方使用编辑内存。

关于c - 持久化malloc创建的内存块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13068219/

相关文章:

java - 为什么建议在 ChannelOutboundHandler 中仅使用带有 [byte] 操作的堆缓冲区?

c++ - 扫描 notepad.exe 内存不适用于 Windows 10

c - Malloc 在同一个堆位置?

c - C 中检查哪些指针未释放的方法

C 列表的实现

c - 将 strcat() 与字符串中的字符一起使用?

c++ - 微过滤器:通过通知阻止应用程序

c - sort 函数不会打印排序后的数组?

ios - 使用 Photos 框架进行内存管理

c - 动态分配矩阵中的值输入 - C