加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C中新记忆的范围

发布时间:2020-12-16 10:46:21 所属栏目:百科 来源:网络整理
导读:当我尝试执行以下操作时,我收到一条错误消息,说我正在尝试读取或写入受保护的内存. void func1(int * ptr) { int *ptr_b = new int[5]; ptr = ptr_b; }void main() { int *ptr_a; func1(ptr_a); delete [] ptr_a;} 这合法吗? 解决方法 不,你是一个普通的初
当我尝试执行以下操作时,我收到一条错误消息,说我正在尝试读取或写入受保护的内存.

void func1(int * ptr) {
    int *ptr_b = new int[5];
    ptr = ptr_b; 
}

void main() {
    int *ptr_a;
    func1(ptr_a);
    delete [] ptr_a;
}

这合法吗?

解决方法

不,你是一个普通的初学者错误.你不记得指针只是通过值传递的变量,除非你要求引用或指向它们.将函数的签名更改为void func1(int *& ptr)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读