new和delete

来源:互联网 发布:剑灵召唤捏脸数据 编辑:程序博客网 时间:2024/06/16 14:19
#include<iostream>using namespace std;int main(){int *a = new int[20];a[0] = 1;a[1] = 1;int i = 0;cout<<a<<endl;for(i = 2; i < 20; i++){a[i] = a[i - 1] + a[i - 2];}for(int j = 0; j < 20; j++){cout<<j+1<<" : "<<a[j]<<endl;}delete[] a;cout<<a<<endl;cout<<"after delete"<<endl;for(int j = 0; j < 20; j++){cout<<j+1<<" : "<<a[j]<<endl;}}

本来想用new创建一个动态空间存放前20位fibonacci数

就用

int *a = new int[20];

并且可以输入输出。

问题在于:delete后还是可以访问到a,依旧能输出20 个数

分析:delete删除动态空间,已经写入地址的数据不会改变还在原处,

为了安全,我们可以使 a = NULL;

原创粉丝点击