malloc初始化三维数组

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xiangxianghehe/article/details/100024099

直接上代码,mark以防以后备用

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

int*** funcao(int a,int b,int c)
{
    int ***ppp = malloc( a * sizeof(int **) );
    int i, j, k;
    // Optimized your memory allocation code
    for(i=0; i < a; i++)
    {
        ppp[i] = malloc( b * sizeof(int *) );
        for(j=0; j < b; j++)
        {
            ppp[i][j] = malloc( c * sizeof(int) );
        }
    }

    for(i=0; i < a; i++)
    {
        for(j=0; j < b; j++)
        {
            for(k=0; k < c; k++)
            {
                ppp[i][j][k]=k+i+j;
                printf("%d\t",ppp[i][j][k]);
            }
            printf("\n");
        }
        printf("\n");
    }
    return ppp;
}

int main()
{
    int ***ppp=funcao(2,5,7);
    int i, j, k;
    int a=2,b=5,c=7;
    //Free the memory
    for( i=0; i < a; i++)
    {
        for( j=0; j < b; j++)
        {
            free(ppp[i][j]);
        }
    }
    for( i=0; i < a; i++)
    {
        free(ppp[i]);
    }
    free(ppp);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/xiangxianghehe/article/details/100024099