我试图重载
似乎
operator new
以跟踪内存分配(用于调试)。当分配非POD类型的数组时(例如,一个持有std :: string的类的数组),我遇到了麻烦。似乎
operator new
被调用来为数组分配内存+8个字节,这些字节用于存储数组长度(可能是为了在销毁数组时编译器可以调用正确数量的析构函数)。
operator new[]
如何知道实际数据是放置在返回地址(PODs数组)还是在返回地址+8处?(我需要这样做以便可以搜索指针结构)
operator new
和operator new[]
都接收以字节为单位的总大小,而不是单个结构的大小。我猜这是一个没有好解决方案的问题... - nimrodmsize_t
的类。可能会对你有所帮助。 - Zan Lynx