main()
{
x = malloc(....);
func(x);
free(x); <<--- 여기가 문제입니다..
}
func(x)
{
pid = fork();
if(pid == 0)
{
exec...(x,....); //차일드 루틴 수행;
}
}
다시 메인으로 돌아와서 메모리를 해제하려고 하니. 메모리 주소가 틀려
져 있더군요. 아마도 부모가 한번 메모리를 선언하고, 자식이 역시 또 한
번 메모리를 선언하기 때문이겠죠?
그런데 메모리는 선언한 곳에서 해제하는것이 원칙일텐데..
이런 경우는 메모리 주소가 누군가 바꾸어서, 어떻게 해제해야합니까?