首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于内存分配和fork()的有关问题

2012-04-12 
关于内存分配和fork()的问题fork产生的子进程会复制父进程的空间,在父进程中分配的内存是否也许要在子进程

关于内存分配和fork()的问题
fork产生的子进程会复制父进程的空间,在父进程中分配的内存是否也许要在  
子进程中释放掉呢?

一个例子:
void   main(){
    void   *ptr   =   malloc(10);
    if(fork()   ==   0){   {
        /*   请问这里是否也需要free(ptr)?*/
    }
    free(ptr);
}

[解决办法]
如不释放,在子进程执行 exec 之前,子进程中将持有第二份同样的内容的内存(cow 等底层实现不在讨论范围)所以如果需要继续运行而非 exec,应该记得在适当时候释放。

热点排行