C语言练习题——动态数组

当数组长度需要由用户指定时,需要用到动态数组。malloc()函数可以在堆中申请一块内存,字节数由程序员指定。申请来的内存使用完之后需要用free()函数手动释放。

下面给出创建动态一维数组的例子

#include
#include

int main()
{
    int* p = NULL;
    int len;
    int i;
    printf("请输入数组的长度: \n");
    scanf("%d",&len);
    p = (int*)malloc(sizeof(int) * len);
    for(i=0; ifor(i=0; iprintf("p[%d] = %d\n",i,p[i]);
    free(p); // 释放申请的内存
    return 0;
}

C语言练习题——动态数组_第1张图片

下面给出创建动态二维数组的例子

#include
#include

int main()
{
    int** p = NULL;//创建一个二级指针,他存放的元素类型是一级指针
    int n,m;//n行m列
    int i,j;//行、列控制变量
    printf("Please enter n,m\n");
    scanf("%d %d",&n,&m);
    p = (int**)malloc(sizeof(int*) * n);//把动态申请的内存分配给p
    for(i=0; i//遍历n行
        *(p+i) = (int*)malloc(sizeof(int) * m);//每行创建一个长度为m的一维数组
    for(i=0; i//赋值
        for(j=0; jfor(i=0; i//输出
    {
        for(j=0; jprintf("%5d",p[i][j]);  
        printf("\n\n");
    }
    free(p);//释放申请的内存
    return 0;
}

C语言练习题——动态数组_第2张图片

你可能感兴趣的:(C/C++)