c語(yǔ)言三元數(shù)組的實(shí)現(xiàn)方法

小樊
81
2024-10-17 18:55:03

在C語(yǔ)言中,三元數(shù)組(也稱(chēng)為三維數(shù)組)可以看作是一個(gè)數(shù)組的數(shù)組,其中每個(gè)元素都是一個(gè)數(shù)組。這里是一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方法:

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

int main() {
    // 定義一個(gè)三維數(shù)組
    int ***array;
    int x, y, z;

    // 設(shè)置數(shù)組的大小
    int x_size = 3;
    int y_size = 4;
    int z_size = 2;

    // 為三維數(shù)組分配內(nèi)存
    array = (int ***)malloc(x_size * sizeof(int **));
    for (x = 0; x < x_size; x++) {
        array[x] = (int **)malloc(y_size * sizeof(int *));
        for (y = 0; y < y_size; y++) {
            array[x][y] = (int *)malloc(z_size * sizeof(int));
        }
    }

    // 初始化數(shù)組
    for (x = 0; x < x_size; x++) {
        for (y = 0; y < y_size; y++) {
            for (z = 0; z < z_size; z++) {
                array[x][y][z] = x * y * z;
            }
        }
    }

    // 顯示數(shù)組內(nèi)容
    for (x = 0; x < x_size; x++) {
        for (y = 0; y < y_size; y++) {
            for (z = 0; z < z_size; z++) {
                printf("%d ", array[x][y][z]);
            }
            printf("\n");
        }
        printf("\n");
    }

    // 釋放內(nèi)存
    for (x = 0; x < x_size; x++) {
        for (y = 0; y < y_size; y++) {
            free(array[x][y]);
        }
        free(array[x]);
    }
    free(array);

    return 0;
}

這個(gè)程序創(chuàng)建了一個(gè)3x4x2的三元數(shù)組,并使用嵌套循環(huán)初始化其元素。然后,它使用另一個(gè)嵌套循環(huán)顯示數(shù)組的內(nèi)容。最后,它釋放了分配給數(shù)組的內(nèi)存。

0