#include "stdlib.h"
#if defined(__CC_ARM)
void *$Super$$malloc(size_t);
void *$Sub$$malloc(size_t size)
{
// mutex_lock()
void *addr = $Super$$malloc(size);
// mutex_unlock()
return addr;
}
void $Super$$free(void *);
void $Sub$$free(void *addr)
{
// mutex_lock()
$Super$$free(addr);
// mutex_unlock()
}
#endif
C++ 版(C++自带重写功能,注意:很多STL模板是没有保护的,如 push_back() 慎用):
#include
void *operator new(size_t size) throw(std::bad_alloc)
{
void *addr= malloc(size);
return addr;
}
void operator delete(void *addr) throw()
{
free(addr);
}
void *operator new[](size_t size) throw(std::bad_alloc)
{
void *addr= malloc(size);
return addr;
}
void operator delete[](void *addr) throw()
{
free(addr);
}
void *operator new(std::size_t size, const std::nothrow_t& nothrow)
{
void *addr= malloc(size);
return addr;
}
void *operator new[](std::size_t size, const std::nothrow_t& nothrow)
{
void *addr= malloc(size);
return addr;
}
以上就是今天分享的内容,希望这篇文章能对大家有所帮助。
END
→点关注,不迷路←