Abh*_*jit
2
c
c++
windows
posix
像wcsdup这样的函数隐式调用malloc来为目标缓冲区分配内存.我想知道内存分配不是很明确,所以显然释放存储似乎是合乎逻辑的吗?这更像是一种设计困境,其原因和反对如下
应该被释放,因为
- 不释放它会导致内存泄漏.
- 有充分证据表明,即使从C++程序调用,wcsdup/_wcsdup也会调用malloc来分配内存.
不应该被释放,因为
- 当程序退出时,wcsdup累积的内存最终将被释放.在整个程序生命周期中,我们总是会遇到一些内存泄漏(除非我们大量调用大型缓冲区大小的wcsdup).
- 它可能会让人感到困惑,因为free之前没有明确的malloc.
- 由于它不是标准的一部分但符合posix,因此Microsoft实现可能不会使用malloc来分配目标缓冲区.
该方法应该是什么?