<分区>
我正在开发一个 C++ 库,其中一个函数返回一个(新分配的)指向 double 组的指针。 API 声明调用者有责任释放内存。
但是,该 C++ 库过去是在 C 中实现的,并且所讨论的函数使用 malloc()
分配内存。它还假定调用者将使用 free()
释放该内存。
我能否安全地将对 malloc()
的调用替换为对 new
的调用?如果我这样做,现有的客户端代码(使用 free()
会中断吗?到目前为止我能找到的是 free()
的官方文档,其中指出
If ptr does not point to a block of memory allocated with [malloc, calloc or realloc], it causes undefined behavior.
但我相信这是在 C++ 及其自己的分配运算符出现之前编写的。