很抱歉提出这个问题,但实际上我不知道这个问题.我在下面的FAQ条目中读过: 我可以使用new分配free()指针吗?我可以删除用malloc()分配的指针吗?
此外,无法保证new和delete用于获取和释放原始内存的机制与
malloc()和兼容free().
我只是想知道这是什么"原始记忆"?
“原始内存”是指内存块,被视为非结构化字节数组。高级语言使用这些作为对象的存储;程序通常与这些对象交互,而不是低级字节值。
在 C++ 中,可以使用两种不同的分配函数动态分配原始内存:
operator new, 用于在使用创建对象时从空闲存储分配newmalloc 来自 C 库分配的内存new必须用delete; 分配的内存malloc必须用 释放free。
您引用的那句话解释了这些可能使用不同的机制来管理分配;所以使用错误的函数来释放内存是错误的(例如分配内存new并尝试释放它free)。