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

二维数组怎么动态内存分配

  • 内存
  • 2024-05-08 00:07:24
  • 439

一、动态分配内存的动态分配内存的方法(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返回的是一个字符指针。新的ANSIC标准规定该函数返回一个void指针,因此必要时需要进行类型转换。
名称解释:malloc的全称是内存分配,中文称为动态内存分配。当无法知道内存的具体位置时,必须使用动态内存分配。


二、二维数组怎么动态内存分配

方法一,分配多个一位数组并存储在一起