当前位置:首页 > 内存 > 正文

动态内存分配运算符(动态内存分配头文件)

  • 内存
  • 2024-06-01 22:25:08
  • 5529

一、动态分配内存的动态分配内存的方法(C/C++)

(1)new可以用来生成动态未命名变量
例如int*p=newint;
int*p=newint[10];//动态数组的大小可以是变量或者常量,并且一般情况下,直接声明数组时,数组大小必须是常量
又如:
int*p1;
double*p2;
p1=newint⑿;
p2=newdouble[100];
l分别表示动态分配用于存储整数数据的内存空间,将初始值12写入内存空间和首地址值返回给指针p1;
l是动态赋值的对于100个双精度实数数组元素的数组,每个存储区域的首地址指针返回给指针变量p2;
用于生成两个高维和高维数组,应该使用多维指针。
以二维指针为例
int**p=newint*[row];//row是二维数组中的一行,p是指向指针数组的指针
for(inti=0;ip[i]=newint[col];//col是二维数组中的列,p是指向int的指针array
删除这个二维矩阵
for(inti=0;idelete[]p[i];//先删除二维矩阵的列维矩阵
delete[]p;
⑵动态无名变量使用后应及时释放。使用删除运算符
deleteep;//删除单个变量
delete[.]p;//释放数组变量(与数组维数无关)
与一般变量声明相比,使用new和delete运算符可以轻松使用变量。原型:externvoid*malloc(unsignedintnum_bytes);
头文件:TC2.0中可以使用malloc.h或alloc.h(注意:alloc.h和malloc.h的内容完全一致),而在TC2.0Malloc.h或stdlib.h可以在VisualC++6.0中使用。
功能:分配一块长度为num_bytes字节的内存
返回值:如果分配成功,则返回一个指向所分配内存的指针(该存储区域的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数释放内存块。函数返回的指针必须正确对齐,以便它可以与任何数据对象一起使用。
注意:关于该函数的原型,老版本中malloc返回的是一个字符指针。
名称解释:malloc的全称是内存分配,中文称为动态内存分配。当无法知道内存的具体位置时,必须使用动态内存分配。


二、c++程序中的运算符都是从c语言继承下来的,它新增的运算符有哪些?

C++中的新运算符

范围运算符(::)

)

新运算符

动态分配内存空间

一般格式:

p=newtype(初始值列表)

示例:

int*p1=newint;//分配一块内存空间来存放int数据类型,并将该内存空间的地址赋给p1。

int*p2=newint(10);//存放一个内存空间分配int数据类型,指定初始值为10,并将该内存空间的地址赋给p2

int*p3=newint[20];//分配空间存储在一维数组内存中space,数组有10个元素,数组首地址赋给p3。

4.删除运算符

用于释放new<分配的内存空间/p>

一般格式:

删除指针变量名;

示例:

int*p=newint(10);

int*p=newint(10);

double*p2=newdouble[10];

deletep;//删除p指向的内存空间

delete[]p2;//删除内存spacep2指向(释放数组格式)