读时共享,写时拷贝(全部变量和局部、堆空间都是这样的结果)
堆区,申请一次,必须释放两次。因为子进程也复制了一份去。
父子进程申请的堆空间地址是一样的。
Linux中查看内存泄漏的工具:valgrind ./a.out
上面代码内存泄漏!
改进:
两个进程都加上:free§
GDB调试多进程
-g别忘了
默认跟踪父进程!
若要跟踪子进程,则需要设置:
在执行到fork前,加上这句 set follow-fork-mode child
读时共享,写时拷贝(全部变量和局部、堆空间都是这样的结果)
堆区,申请一次,必须释放两次。因为子进程也复制了一份去。
父子进程申请的堆空间地址是一样的。
Linux中查看内存泄漏的工具:valgrind ./a.out
上面代码内存泄漏!
改进:
两个进程都加上:free§
GDB调试多进程
-g别忘了
默认跟踪父进程!
若要跟踪子进程,则需要设置:
在执行到fork前,加上这句 set follow-fork-mode child