鱼C论坛

 找回密码
 立即注册
查看: 1051|回复: 5

有关访问权限冲突

[复制链接]
发表于 2022-2-13 23:55:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问这个为啥会报访问冲突的错误
屏幕截图 2022-02-13 235510.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-13 23:56:55 | 显示全部楼层
这个是报错信息:

引发了异常: 写入访问权限冲突。
**number** 是 0x6963F1B0。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-14 08:41:37 | 显示全部楼层
Andrew@ 发表于 2022-2-13 23:56
这个是报错信息:

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

子函数里面的内存地址  是无法返回给主函数的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-14 16:00:56 | 显示全部楼层
wp231957 发表于 2022-2-14 08:41
子函数里面的内存地址  是无法返回给主函数的

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

  4. int main(void)
  5. {
  6.         int n;
  7.         scanf_s("%d", &n);
  8.         int* pst = test(n);

  9.         printf("pst[0] = %d", pst[0]);

  10.         free(pst);
  11.         return 0;
  12. }

  13. int* test(int n)
  14. {
  15.         int* number = (int*)malloc(n * sizeof(int));
  16.         number[0] = 100;
  17.         return number;
  18. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-14 16:01:45 | 显示全部楼层
wp231957 发表于 2022-2-14 08:41
子函数里面的内存地址  是无法返回给主函数的

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-14 16:03:54 | 显示全部楼层
wp231957 发表于 2022-2-14 08:41
子函数里面的内存地址  是无法返回给主函数的

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 11:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表