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();
}