动态内存分配

 当无法预先确定空间大小,或者空间太大(栈上无法分配),需要用动态分配. ,动态分配需要自己释放空间,所以小的对象,不用动态分配.,C语言中一般用malloc函数分配内存,然后用free函数释放

函数malloc 的原型如下:
void * malloc(size_t size);
用malloc 申请一块长度为length 的整数类型的内存,程序如下:
int *p = (int *) malloc(sizeof(int) * length);
我们应当把注意力集中在两个要素上:“类型转换”和“sizeof”。

下例是一个二维数组内存的动态分配:
 double **F;//F为一个n行3列的二维矩阵
 F=(double**)malloc(n*sizeof(double*));
  for(long r3=0; r3<n; r3++)
  {
   F[r3]=(double*)malloc(3*sizeof(double));
  }

  free(F);//释放分配的内存

 

 

C++中提供了简便而功能较强的运算符new和delete

double **x;//x为n行3列的矩阵

 x=new   double*[n]; //为x动态分配内存

 for(i=0;i<n;i++)
 {
   x[i]=new   double[3];

 }

//分配了内存肯定要释放

 for(long j=0;j<n;j++)
 { 
   delete [] x[j];
 }
   delete [] x;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值