1. #include<bits/stdc++.h>
    2. using namespace std;
    3. /**
    4. * new 和 delete 分配和释放堆内存
    5. * */
    6. int main() {
    7. int *p1, *p2, *p3;
    8. p1 = new int ; // 分配能够存储 int 类型的内存区域
    9. p2 = new int(10); // 分配 int 类型的内存区域,并且初始化为 10
    10. p3 = new int[10]; // 分配能够存放 10 个整数的数组区域
    11. if(!p3) { // 分配不成功,显示错误信息
    12. cout<<"allocation failture"<<endl;
    13. return -1; // 返回错误状态码
    14. }
    15. *p1 = 5;
    16. *p3 = 1;
    17. p3[1] = 2; // 访问指向数组的元素
    18. p3[2] = 3;
    19. cout<<"p1 address:" << p1 << " value:"<< *p1 <<endl;
    20. cout<<"p2 address:" << p2 << " value:"<< *p2 <<endl;
    21. cout<<"p3[0] address" << p3 << " value:" << *p3<<endl;
    22. cout<<"p3[1] address" << &p3[1] << " value:" << p3[1]<<endl;
    23. delete p1;
    24. delete p2;
    25. // delete p3; // 错误,只释放了 p3 指向数组的第一个元素,会造成内存泄露
    26. delete []p3;
    27. return 0;
    28. }