求助C语言指针问题。。。。

#include

int x, z;
int *q, *r;

void func();
void func2(int *a);
int main()
{
int y, z;
int *p;

y = 400;
p = &y;

func();
z = 100;
printf("%d = 100 = %d\n", *q, z);

*q = 300;
printf("%d = 300\n", x);

printf("%d = 800\n", *r);

func2(p);
printf("%d = 300 = %d\n", *q, y);

return 0;

}
void func() {
z = 100;
q = &z;
x = 300;
}
void func2(int *a) {
*a = 300;
}
要求不可以增加全局变量,不能修改main函数。
要求最后输出为
100 = 100 = 100
300 = 300
800 = 800
300 = 300 = 300
*r那里不是太明白,求大佬解惑
上面是我写的,*r那里不知道怎么写没写,想知道如果想要输出800=800应该怎么写

代码中没有对 *r 的赋值,所以结果不确定
我这里用 gcc 跑不出 800=800
相反是 Segmentation fault