文章 2022-06-11 来自:开发者社区

C++要成对使用new和delete且采取相同形式

1.问题的引入先来看一下以下的代码段有什么问题:1std::string* stringArray = new std::string[100] // 动态分配100元素的字符串数组 2// ... 使用 3delete stringArray; // 释放看起来new与delete似乎是成对使用了,可是这样只会释放数组的第一个元素,其他99个对象则不会被释放,因为它们的析构函数并没有被调用...

文章 2017-02-21 来自:开发者社区

读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式

1. 一个错误释放内存的例子 下面的场景会有什么错? 1 std::string *stringArray = new std::string[100]; 2 3 ... 4 5 delete stringArray   一切看上去都是有序的。new匹配了一个delete。但有一些地方确实是错了。程序的行为是未定义的。至少来说,stringArray指向的100个string对象中的99...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等