c/c++ポインタ管理の一部

950 ワード

ポインタは、指向されたオブジェクトが解放または回収されるが、そのポインタが回収されたメモリアドレスを指すように変更されていない場合、サスペンションポインタ(迷路ポインタとも呼ばれる)と呼ばれる.Dangling pointer
一部のプログラミング言語では、初期化されていないポインタの存在を許可します.このようなポインタは野ポインタです.Wild Pointer
 
まず空ポインタ判断など、空ポインタの参照を防ぐのは簡単です.
最も重要なのは、ポインタによるメモリ漏洩の問題です.いつ廃棄されるか見てみましょう
スマートポインタ、すばらしい
shared_ptr a = make_shared();
オブジェクトのライフサイクルが終了すると自動的に解放されます
 
良い習慣:ポインタを解放した後、ポインタをnullptrに割り当てる必要があります.
このポインタの再deleteによるエラーを防止します(undefined behavior)
c++ : delete
c: free
#include
#include
using namespace std;

class A{
    public:
        A(){
            cout << " constructing" << endl;
        }
        ~A(){
            cout << "destructing" < smart = make_shared();
}
int main(){
f();
return 0;
}