Joh*_*itb 13
删除指针(或删除指向的指针,或者)意味着
delete p;
delete[] p; // for arrays
Run Code Online (Sandbox Code Playgroud)
p 在该声明之前分配了
p = new type;
Run Code Online (Sandbox Code Playgroud)
它也可以指使用其他动态内存管理方式,例如 free
free(p);
Run Code Online (Sandbox Code Playgroud)
以前使用malloc或calloc分配的
p = malloc(size);
Run Code Online (Sandbox Code Playgroud)
后者通常被称为"释放",而前者通常被称为"删除".delete用于具有析构函数的类,因为delete除了释放内存之外还将调用析构函数.free(和malloc的,释放calloc等)用于基本类型,但在C++ new和delete也同样可以用于他们,所以没有太多的理由要在C++的malloc,但出于兼容性考虑.
fre*_*low 10
您不能"删除"指针变量
你当然可以 ;-)
int** p = new int*(new int(42));
delete *p;
delete p; // <--- deletes a pointer
Run Code Online (Sandbox Code Playgroud)
但说delete真的,应该真的被称为delete_what_the_following_pointer_points_to.
| 归档时间: |
|
| 查看次数: |
27050 次 |
| 最近记录: |