https://stackoverflow.com/questions/2182103/is-it-ok-to-free-void
free(ptr) 仅释放指针指向的内存,不会修改指针变量本身的值。调用后,ptr 仍然指向原来的地址(称为 "悬空指针"),但该地址对应的内存已被系统回收。此时访问该内存是未定义行为(UB)。
注意:需要传入指针的指针,才能修改指针
// test_alloc.cpp 释放内存
allocator->deallocate(&ptr);
// alloc.cpp
void CPUAllocator::deallocate(void** ptr) {
if (*ptr) {
free(*ptr);
*ptr = nullptr; // 显式置空,避免后续误用
}
}












![[Mamba轻量化]DefMamba: Deformable Visual State Space Model,CVPR2025](https://i-blog.csdnimg.cn/direct/518b42ded33f4b3fb503adf936d94dc3.png)






