malloc动态申请一个数组

意义:
静态定义的数组在程序加载的时候就已经分配了内存空间,直到函数结束或者程序结束后才会被释放
malloc定义的数组在程序运行时才申请内存空间,使用完后可以手动释放

申请一维数组

#include //输入输出流头文件
#include //调用malloc()函数所需头文件,也可使用stdlib.h

using namespace std;

int main()
{
    int n, k;
    cin>>n;
    int *a = (int*)malloc(sizeof(int)*n);//给数组a申请存储空间,空间长度为n
    for(int i = 0; i < n; i++)
    {
        cin>>a[i];
        cout<' ';
    }
    return 0;
}

申请多维数组

#include //输入输出流头文件
#include //调用malloc()函数所需头文件,也可使用stdlib.h

using namespace std;

int main()
{
    int **a, n, m, k;
    k = 0;
    cin>>n>>m;//n为几维数组,m是一个维中有几个元素

    a = (int **)malloc(sizeof(int *) * n);//分配维数

    for(int i = 0; i < n; i++)
        a[i] = (int *)malloc(sizeof(int) * m);//分配各个元素

    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++, k++)
        {
        a[i][j] = k;
        cout<' ';
        }
    return 0;
}

你可能感兴趣的:(小知识点)