Andrew@ 发表于 2022-2-13 23:55:51

有关访问权限冲突

请问这个为啥会报访问冲突的错误

Andrew@ 发表于 2022-2-13 23:56:55

这个是报错信息:

引发了异常: 写入访问权限冲突。
**number** 是 0x6963F1B0。

wp231957 发表于 2022-2-14 08:41:37

Andrew@ 发表于 2022-2-13 23:56
这个是报错信息:

引发了异常: 写入访问权限冲突。


子函数里面的内存地址是无法返回给主函数的

Andrew@ 发表于 2022-2-14 16:00:56

wp231957 发表于 2022-2-14 08:41
子函数里面的内存地址是无法返回给主函数的

我知道为啥了,因为我忘了引入头文件了,因为是用 malloc() 动态分配的内存,如果不释放的话,应该是全局的。
#include <stdio.h>
#include <stdlib.h>
int* test(int);

int main(void)
{
        int n;
        scanf_s("%d", &n);
        int* pst = test(n);

        printf("pst = %d", pst);

        free(pst);
        return 0;
}

int* test(int n)
{
        int* number = (int*)malloc(n * sizeof(int));
        number = 100;
        return number;
}

Andrew@ 发表于 2022-2-14 16:01:45

wp231957 发表于 2022-2-14 08:41
子函数里面的内存地址是无法返回给主函数的

谢谢{:5_105:}

Andrew@ 发表于 2022-2-14 16:03:54

wp231957 发表于 2022-2-14 08:41
子函数里面的内存地址是无法返回给主函数的

我看那个C Primer Plus第六版上面写的:malloc() 创建的数组不必局限在一个函数内访问

页: [1]
查看完整版本: 有关访问权限冲突