初学者提问,指针读取访问权限冲突,大佬们看看

初学者的疑惑,这儿是什么原因,困惑了好久了,大佬们看看

上面说*q=n+1也不对啊,q是一个没有被分配空间的指针,不可以直接给q指向的空间赋值。

还有你这个函数我看了半天也不知道n有啥用;

这如果是个找出数组最大小值的函数,而且n是传入数组的长度的话,我猜你想写的程序可能是这样的

void max_min_value(int arr[], int n) {
    max = min = arr[0];
    for (int *p = arr; p < arr + n; p++) {
        if (max < *p) {
            max = *p;
        }
        if (min > *p) {
            min = *p;
        }
    }
}

 

应该是*q=n+1;

q=n+1是让指针指向地址n+1,但是你的程序并没有在这个地址分配空间

你让一个指针等于一个整数加一就不对啊;你的q到底是干什么用的我也没看出来啊;还有你的for循环条件判断也不对啊,arr[n]是数组第n项的元素值不是地址值,跟指针比较毫无意义啊。