动态内存的申请

//C语言中内存申请
int* pC =(int*)malloc(sizeof(int));
free(pc);
pC=nullptr;
//cpp:使用new 和 delete
int* pcpp= new int;
delete pcpp;

二维数组
//c语言
int** pC =(int**)malloc(sizeof(int*)*3);
//pC[i]都是一个一级指针
for (int i =0; i<3; i++)    //3行
{
pc[i]= (int*)malloc(sizeof(int) * 4); //4列
}
//cpp
//申请
int** p= new int*[4];
for (int i = 0; i<4; i++)  //4行
{
p[i] = new int[8];  //8列
}
//释放
for (int i = 0; i <4; i++)
{
delete[] p[i];
}
delete[] p;
用子函数实现
//返回值方式
int** myMalloc(int row,int cols){
int** p = new int* [row];
for (int i=0;i<row;i++)
{
p[i]=new int[cols];
}
return p;}

//传参的方式
void myMalloc(int** &p, int row, int cols){}
p=new int* [row];
for (int i=0; i< row; i++)
{
p[i]=new int[cols];
}}
//二次申请
char* memory = new char[1024];
//memory:表示的是从那个位置开始申请内存
int* pInt = new(memory) int[3];
//pInt + 3:表示的是从那个位置开始申请内存
char* pStr = new(pInt + 3) char[10];
//等效: char* pStr=new(memory+sizeof(int)*3
//即new之后的第一个括号表示从哪里开始申请,括号后跟申请的类型和空间

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值