004--C++动态内存分配(最优)

这篇博客介绍了C++与C语言在动态内存分配上的区别,强调了C++中new和delete运算符的使用,并提供了动态内存分配的示例代码,包括单个和连续内存的分配、释放,以及二维指针和二维数组的处理。同时,文中提到了动态内存分配时的注意事项,如手动释放堆区内存。
摘要由CSDN通过智能技术生成

此下学习内容仅供参考学习,无详细解说,后期不断完善。敬请期待···········

C++动态内存的分配与C语言动态内存分配的区别:

  • C语言的动态内存分配是函数,C++的动态内存分配是运算符。
  • C语言的动态内存分配不能和C++的动态内存分配不能混合使用。

C++动态内存分配new和delete 的用法:

使用动态内存分配时的注意事项:

C++动态内存分配二维指针,二维数组的使用:


动态内存分配代码学习参考:

#include"stdlib.h"
//动态内存:ma00fc calloc realloc free
//C++内存分配:new delete 
#include"stdio.h"
#include<memory.h>
int main(){
	int a = 4407873;
	printf("%s\n",(char*)&a);
	int *p =(int*)malloc(sizeof(int)* 4);//栈区数据自动释放,堆区数据手动释放
	free(p);//释放的是堆区数据
	p = NULL;//释放栈区数据,完全释放内存------c语言内存操作

	int *p1 = new int;//分配单个内存,在堆区分配四字节
	delete p1;
	p1 = NULL;
	
	int *p2 = new int(5);//分配单个内存,在堆区分配四字节,并给这个四字节赋值4
	delete p2;
	p2 = NULL;

	int *p3 = new int[4];//分配 连续内存,在堆区分配16个字节。不能给内存字节赋值
	memset(p3,0,sizeof(int)*4);//内存逐字节分配,头文件memory.h
	delete[] p3;//连续释放内存。注意:[]只能写在中间
	p3 = NULL;

	int** p4 = new int*;
	int b = 10;
	*p4 = &b;
	**p4 = 123;
	printf("%d\n",b); 
	p4= NULL;

	int** p5 = new int*[4];//堆区分配动态指针数组
	delete[] p5;
	return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字界陈冠希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值