free void* 指令
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; // 显式置空,避免后续误用}
}