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

动态分配和撤销内存的运算符

  • 内存
  • 2024-06-11 17:54:58
  • 9797

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

(1)new可以用来生成未命名的动态变量
例如int*p=newint;
int*p=newint[10];//动态数组的大小可以可以是变量,也可以是常量,一般情况下,直接声明数组时,数组的大小必须是常量
又如:
int*p1;
double*p2;/>;p1=newint⑿;
p2=newdouble[100];
l分别表示动态分配用于存储整数数据的内存空间,将初始值12写入内存空间和首地址value返回给指针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;
⑵使用未命名的动态变量后,必须及时释放。使用删除操作符
delete;//释放单个变量
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返回的是char指针,新的ANSIC标准规定该函数返回空指针,因此必要时需要进行类型转换。
名称说明:malloc的全称是内存分配,中文称为动态内存分配,当无法知道具体的内存位置时,如果想要映射真实的内存空间,就必须使用动态分配。记忆。