有个问题想请教,是在看静态变量的概念时产生的。如果我在一个函数中创建一个分配的内存块,使用 malloc
,然后函数返回到 main
,而没有使用 free()
在分配的内存上,该内存块是否容易受到程序过程中变化的影响?我的意思是,在我离开函数后,内存块是否有可能被另一个进程覆盖,而我想以我的方式使用它和/或编辑它,或者它是否被类似的东西“锁定”,直到我免费吗?在我释放它之前,是否有可能将该 block 视为没有数据?
最佳答案
一旦您malloc
了一定数量的字节,除非您显式释放
它,否则它将在您的程序的整个生命周期中一直存在。
无论您在哪个函数中执行了 malloc
,如果您有一个有效的指向 malloc 的指针,内存将一直存在,供您在程序中的任何地方使用
编辑内存。
关于c - 持久化malloc创建的内存块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13068219/