RMBG-2.0 ONNX本地抠图:轻量高精、跨平台、零依赖部署
2026/9/26 6:24:34
在C语言中,动态内存分配函数(如malloc、realloc和free)的调用应该成对出现。这意味着:
-规则1:每一次内存分配都必须有对应的释放操作。如果没有,可能会导致内存泄漏,进而使平台资源耗尽,表现为性能下降或随机崩溃。
-规则2:每一次释放操作之前,必须有malloc、calloc、aligned_alloc或realloc的分配操作。不过,realloc函数比较特殊,当它对一个已存在的对象进行操作时,它同时起到了释放旧对象和分配新对象的作用,这可能会使内存分配的计数变得复杂。
-规则3:free函数只能用于由malloc、calloc、aligned_alloc或realloc返回的指针,并且这些指针不能指向通过其他方式分配的对象(如变量或复合字面量),不能已经被释放过,也不能只指向已分配对象的一部分,否则程序会崩溃并破坏内存。
以下是一个简单的示例,展示动态内存分配和释放的正确使用: