Use the same form in corresponding uses of new and delete
动机
提出这一点的原因是,delete时被删除的内存之中究竟有多少个对象,这关乎我们需要进行多少次析构函数。往往地,如果我们new与delete不匹配就会发生内存泄漏或者未定义的行为
方法
很简单:new时用了[],delete也必须带[],否则两个都不带。
还有如果需要注意的,尽量不要对数组做typedef动作,诸如
1 | typedef std::string Addr[4]; |
因为在这种情况下,我们不知道应该匹配数组形式的delete
建议
- new与delete的形式匹配