Я изучаю операционную систему. Когда я тестирую этот код, у меня возникает эта проблема - ошибка сегментации, ядро сбрасывается. Как решить эту проблему?Ошибка: ядро отказа от сегментации
#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' правильно. –