C与C++中动态数组的生成及内存动态管理

来源:互联网 发布:学java有前景吗 编辑:程序博客网 时间:2024/06/05 23:49

C中动态数组的生成及释放:

C语言中申请动态数组需要使用malloc()函数;释放动态数组需要使用free()函数;

具体使用方法如下:

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

void main()
{
    int *array = 0, num, i;
   printf("please input the number of element: ");
   scanf("%d", &num);

   // 申请动态数组使用的内存块
   array = (int *)malloc(sizeof(int)*num);

/***所申请的内存不一定成功,所以需要对验证是否成功申请内存以免出现不可知错误***/
if (array == 0) // 内存申请失败,提示退出
{
printf("out of memory,press any key to quit...\n");
exit(0); // 终止程序运行,返回操作系统
}

// 提示输入num个数据
printf("please input %d elements: ", num);
for (i = 0; i < num; i++)
scanf("%d", &array[i]);

free(array); // 释放由malloc函数申请的内存块
}

C++中动态数组的申请与释放:

C++有多重方式来申请动态数组具体如下:

(1)使用new与delete

/***申请一个长度为n的单精度浮点型数组*****/

float * p=new  float [n];

/****释放掉数组p****/

delete [] p;

(2)使用vector来申请动态数组

/*****声明变长数组 *****/

 vector<int> array(len);
for(int i=0;i<len;i++) 
 { 
 array[i]=i; 
 cout<<array[i]<<"/t"; 
 } 
 return 0; 

~vector();

0 0
原创粉丝点击