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

c – 是否建议将指针指向堆内存为“const”?

发布时间:2020-12-16 06:43:47 所属栏目:百科 来源:网络整理
导读:T *p = new T(); 对于堆上的指针,可能会有灾难性的操作, p++; // (1) scope missedp = new T(); // (2) re-assignment 这将导致内存泄漏或由于删除错误而导致的崩溃.除了使用智能指针,总是使堆指针成为const; T* const p = new T(); // now "p" is not modif
T *p = new T();

对于堆上的指针,可能会有灾难性的操作,

p++;  // (1) scope missed
p = new T(); // (2) re-assignment

这将导致内存泄漏或由于删除错误而导致的崩溃.除了使用智能指针,总是使堆指针成为const;

T* const p = new T();  // now "p" is not modifiable

这个问题在于保持良好的编程实践和编码风格.

解决方法

我犹豫,总是说,但你提出的看法似乎是很多/大多数情况下合理的. Const的正确性是大多数C人在功能参数中付出了相当大的关注,但在本地(甚至是成员)变量中并不多.我们可能会更好地这样做.

(编辑:李大同)

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

    推荐文章
      热点阅读