operator new 与 operator delete
发布日期:2025-04-29 07:45:53
浏览次数:15
分类:精选文章
本文共 2323 字,大约阅读时间需要 7 分钟。
C++??????????????????
????????????????????????C++??new?delete???????????????????????????????????????????????????????????????????????????????????????????
??????????
??????????????????????????Allocator???????????????????????????operator new?operator delete????????????????????
#include#if defined(USE_DL_MALLOC) extern "C" void * dlmalloc(size_t); extern "C" void dlfree(void *);#else #define MALLOC malloc #define FREE free#endifstruct Allocator { static void* operator new(size_t space_length) { printf("acquire %u space\n", space_length); return MALLOC(space_length); } static void operator delete(void* space_pointer, size_t space_length) { printf("release %u space %p\n", space_length, space_pointer); FREE(space_pointer); } static void* operator new[](size_t space_length) { printf("acquire %u array\n", space_length); return MALLOC(space_length); } static void operator delete[](void* space_pointer, size_t space_length) { printf("release %u array %p\n", space_length, space_pointer); FREE(space_pointer); }};
???????
??????????????Matrix_1x4???????Allocator?????4????????????????Matrix_4x4??????4x4?????????
struct Matrix_1x4 : public Allocator { int X01, X02, X03, X04;};struct Matrix_4x4 : public Matrix_1x4 { int X11, X12, X13, X14; int X21, X22, X23, X24; int X31, X32, X33, X34;};struct Matrix_1x3 { int X01, X02, X03;};struct Matrix_3x3 : public Matrix_1x3, public Allocator { int X11, X12, X13; int X21, X22, X23;}; ??????
???????????????????????3x3??????????????????
int main(int argc, char* argv[]) { Matrix_1x4* pArray1 = new Matrix_1x4[2]; Matrix_4x4* pArray2 = new Matrix_4x4[2]; Matrix_1x3* pArray3 = new Matrix_1x3[2]; Matrix_3x3* pArray4 = new Matrix_3x3[2]; delete[] pArray1; delete[] pArray2; delete[] pArray3; delete[] pArray4; Matrix_1x4* pMatrix1 = new Matrix_1x4; Matrix_4x4* pMatrix2 = new Matrix_4x4; Matrix_1x3* pMatrix3 = new Matrix_1x3; Matrix_3x3* pMatrix4 = new Matrix_3x3; delete pMatrix1; delete pMatrix2; delete pMatrix3; delete pMatrix4;} ??
???????????????????????????????????????????????????????????????????????????malloc?free???????????????????
???????dlmalloc?????????????????USE_DL_MALLOC????????????????????
发表评论
最新留言
很好
[***.229.124.182]2026年06月06日 02时23分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php获取数据库中数据生成json,中文乱码问题的解决方案
2023-03-01
php获取文件夹中文件的两种方法
2023-03-01
PHP获取日期的一些方法总结
2023-03-01
R2学习记录
2023-03-01
PHP获取本周的每一天的时间
2023-03-01
php获取用户真实IP和防刷机制
2023-03-01
php获取网页内容的三种方法
2023-03-01
R-CNN算法优化策略
2023-03-01
PHP规范PSR0和PSR4的理解
2023-03-01
php解析ipa包,获取logo
2023-03-01
R&Rstudio安装各种包
2023-03-02
php设置cookie,在js中如何获取
2023-03-02
php设置socket超时时间
2023-03-02
php设计模式 萨莱 pdf,PHP设计模式 建造者模式
2023-03-02
PHP设计模式之----观察者模式
2023-03-02
php设计模式之装饰器模式
2023-03-02
R&Python Data Science系列:数据处理(5)--字符串函数基于R(一)
2023-03-02
PHP设计模式:观察者模式
2023-03-02
php访问mysql(1)
2023-03-02
php详细学习1
2023-03-02