OSDN Git Service

style: format markdown files with remark-lint
author24OI-bot <15963390+24OI-bot@users.noreply.github.com>
Fri, 6 Sep 2019 14:48:17 +0000 (10:48 -0400)
committer24OI-bot <15963390+24OI-bot@users.noreply.github.com>
Fri, 6 Sep 2019 14:48:17 +0000 (10:48 -0400)
docs/lang/c-cpp.md

index d3182dd..40b9cb6 100644 (file)
@@ -18,6 +18,6 @@ const 在 C 中只有限定变量不能修改的功能,而在 C++ 中,由于
 
 ## 内存分配
 
-C++ 中新增了 `new` 和 `delete` 关键字用来在“自由存储区”上分配空间,这个自由存储区可以是堆也可以是静态存储区,他们是为了配合“类”而出现的。其中 `detele[]` 还能够直接释放动态数组的内存,非常方便。`new` 和 `delete` 关键字会调用类型的构造函数和析构函数,相比 C 中的 `malloc()` 、 `realloc()` 、 `free()` 函数,他们对类型有更完善的支持,但是效率不如 C 中的这些函数。
+C++ 中新增了 `new` 和 `delete` 关键字用来在“自由存储区”上分配空间,这个自由存储区可以是堆也可以是静态存储区,他们是为了配合“类”而出现的。其中 `detele[]` 还能够直接释放动态数组的内存,非常方便。 `new` 和 `delete` 关键字会调用类型的构造函数和析构函数,相比 C 中的 `malloc()` 、 `realloc()` 、 `free()` 函数,他们对类型有更完善的支持,但是效率不如 C 中的这些函数。
 
 简而言之,如果你需要动态分配内存的对象是基础类型或他们的数组,那么你可以使用 `malloc()` 进行更高效的内存分配;但如果你新建的对象是非基础的类型,那么建议使用 `new` 以获得安全性检查。值得注意的是尽管 `new` 和 `malloc()` 都是返回指针,但是 `new` 出来的指针 **只能** 用 `delete` 回收,而 `malloc()` 出来的指针也只能用 `free()` 回收,否则会有内存泄漏的风险。