我需要将我的应用程序分成几个逻辑模块。
“mainapp”:
- “module1.so” - “module2.so” - “module3.so” - 以此类推
每个模块都是一个“*.so”库,在运行时将被加载。
每个模块共享相同的接口并返回一些数据数组。例如:
int *ptr = module1->getIntData();
在“mainapp”方面释放/删除这个内存是否可以?
“mainapp”:
- “module1.so” - “module2.so” - “module3.so” - 以此类推
每个模块都是一个“*.so”库,在运行时将被加载。
每个模块共享相同的接口并返回一些数据数组。例如:
int *ptr = module1->getIntData();
在“mainapp”方面释放/删除这个内存是否可以?
int *ptr = module1->getIntData();
delete ptr; //(or free(ptr))
关于malloc/free实现问题。库是否可能使用与主应用程序不同的实现?
createThing()
方法,为了一致性,最好也提供一个destroyThing()
方法,即使没有其他原因。 - trojanfoemutex
或其他什么。 - someoneunique_ptr
/shared_ptr
允许在对象创建时指定删除器,从而简化内存管理并使显式删除函数过度。 - user3159253unique_ptr
、shared_ptr
或weak_ptr
取决于所有权策略。 - user3159253