운영 체제를 배우고 있습니다. 이 코드를 테스트 할 때, 코어 덤프 (segmented fault)라는 문제가 발생합니다. 이 문제를 해결하는 방법?오류 : 분할 오류 코어가 덤프 됨
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
int p,*stat_addr;
while((p=fork())==-1);
if(p==0)
exit(0);
else
{
wait(stat_addr);
printf("%d\n",*stat_addr);
exit(0);
}
}
'stat_addr'가 초기화되지 않은 것입니다. – chux
'wait'에 초기화되지 않은 포인터를 전달합니다. 그런 다음,'printf'를 호출하여 역 참조를합니다. 'int stat_addr;'...'wait (& stat_addr);와 같은 것을해야한다. printf ("% d", stat_addr);'. – ach
초기화되지 않은 (정적이 아닌) 지역 변수를 사용하는 것으로부터 정의되지 않은 행동 외에도'main' 함수를 올바르게 정의하지 않았기 때문에 프로그램이 잘못되었습니다. –