数组的静态分配
给数组分配固定大小的内存分配方法。
如:float score[100];
数组应该分配多大内存呢?这种方法有着缺陷:在大多数情况下会浪费内存空间;在少数情况下,出现数组不够大,下标越界,导致严重的错误
数组的动态分配
在程序执行的过程中动态地分配或者回收内存存储空间的分配方法,使用完必须由程序员自己释放,否则会引起内存泄漏。
创建动态数组的过程中要遵循一个原则:外层往里层,逐层创建;而释放的时候从里层往外层,逐层释放。
如:
#include <iostream.h>
using namespace std;
int main()
{
int num, i;
int* arr;
cout << "输入创建动态数组的长度:" << endl;
cin >> num;
arr = (int*)calloc(num, sizeof(int)); //动态分配数组大小
for (i = 0; i < num; i++)
{
cout << arr[i]<<" ";
}
cout << endl;
for (i = 0; i < num; i++)
{
arr[i] = i + 1;
cout << arr[i]<<" ";
}
cout << endl;
free(arr);//释放指针
return 0;
}