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人在功能参数中付出了相当大的关注,但在本地(甚至是成员)变量中并不多.我们可能会更好地这样做.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |