普通指针
C、C++没有自动内存回收机制,程序员需要手动释放,如果忘记则会导致内存泄露,另外普通指针存在悬垂指针的问题。
何为悬垂指针?
当有多个指针指向同一个对象时,如果某个指针delete了该对象,对这个指针来说它是明确了它所指的对象被释放了,所以它不会再对此对象进行操作,但是对于剩下的其他指针来说呢?它们还傻傻地指向已经被删除的对象,并随时准备对它进行操作,于是悬垂指针就形成了。
/*************************************************************************
> File Name: 悬垂指针.cpp
> Author: Tanswer_
> Mail: 98duxm@gmail.com
> Created Time: 2016年10月10日 星期一 19时33分44秒
************************************************************************/
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <set>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <stack>
#include <queue>
#include <memory>
using namespace std;
int main()
{
//shared_ptr<string> p1;
int *ptr1 = new int(1);
int *ptr2 = ptr1;
int *ptr3 = ptr2;
cout << *ptr1 << endl;
cout << *ptr2 << endl;
cout <<