动态链接库里分配的内存,在主程序中怎么不

2025-04-18 17:08:06
推荐回答(1个)
回答1:

从代码原理上来说,动态库分配的内存, 只要是动态分配的, 同时将起始指针传到了主程序, 那么在主程序中就可以释放。
典型例子是C标准库函数的strdup, 复制出来的空间必须在主程序中释放掉。
部分库分配的内存, 传给主程序的并不是起始地址, 而是留部分在库内管理,这种不可以在主程序中释放。
大部分库会自行释放申请的内存,这种也不可以在主程序中释放,否则到库进行自行释放时,会二次释放导致崩溃。
总之, 库分配内存,由谁来释放,怎么释放,是要看约定的。