new与delete

c++中的new()与delete()和C语言中molloc()与free()相对应。

malloc

int *p;
p=(int*)malloc(sizeof(int)*100);

1、new
(1)用法
法1:

    int *p;
    p=new type;//其中type是类型,只分配堆内存。

法2:

    int *p;
    p=new type(x);//其中将分配到堆内存初始化为x;

法3:

    int *p;
    p=new type[n];//分配具有n个元素的数组;

(2)如果分配不成功则返回空指针0,在程序中可以用0作为判断内存分配成功与否的根据。
2、delete
(1)用法
法1:

    int *p;
    delete p;//用于释放动态分配的单个指针变量。

法2:

    int *p;
    delete []p;//用于释放动态分配的数组存储区域。

例如:

#include <iostream>

using namespace std;

int main()
{
    int *p1;
    p1=new int;
    *p1=5;
    cout<<"p1 address"<<p1<<"值"<<*p1<<endl;
    delete p1;

    int *p2;
    p2=new int(10);//这里相当于*p2=10;
    cout<<"p2 address"<<p2<<"值"<<*p2<<endl;
    delete p2;

    int *p3;
    p3=new int[10];
    *p3=1;
    p3[1]=2;
    p3[2]=3;
    cout<<"p3[0] address"<<p3<<"值"<<*p3<<endl;//这里不能改为p3[0];
    cout<<"p3[1] address"<<&p3[1]<<"值"<<p3[1]<<endl;
    delete []p3;
    return 0;
}

3、一片空间不能被delete多次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值