文章目录
前言
在C++中,动态空间申请是一种在程序运行时根据需要动态地分配内存的方法。相比于静态空间申请,在编译时确定内存大小,动态空间申请能够更灵活地应对程序运行时的需求变化。
通过使用new
和delete
运算符,我们可以在程序运行时动态地分配和释放内存。动态空间的申请可以用于创建数组、对象等需要不确定大小内存的数据结构,也可以用于避免内存浪费和提高程序的灵活性。
在使用动态空间申请时,需要特别注意内存泄漏和指针悬空等问题,确保及时释放动态分配的内存,避免出现内存泄漏导致程序性能下降或崩溃的情况。
接下来,我们将介绍如何在C++中使用new
和delete
进行动态空间的申请与释放。
一、C语言的mallloc写法
int n = 10;
int a[] = {1,2,3,4,5};//栈区 静态空间 编译器机制
int* p = (int*)malloc(sizeof(int)*n);//堆区 动态申请 运行期机制
p[0] = 1;
p[1] = 2;
cout << p[0] << endl;
二、malloc与new的区别
new是关键字 malloc函数
new申请空间时不需要计算数据类型大小 malloc需要
new申请时可以同时初始化 malloc不可以
new/delete 可以调用构造函数与析构函数 malloc不可以
1、申请一个整型
#include<iostream>
using namespace std;
int main()
{
int* b = new int;
*b = 10;
cout << *b << endl;
delete b;
b = NULL;
return 0;
}
int* b = new int;
:运用new
运算符动态地在堆内存中<