溫馨提示×

c語言動(dòng)態(tài)創(chuàng)建二維數(shù)組怎么實(shí)現(xiàn)

小億
84
2024-08-11 16:45:39
欄目: 編程語言

在C語言中,可以使用指針和動(dòng)態(tài)內(nèi)存分配來動(dòng)態(tài)創(chuàng)建二維數(shù)組。以下是一個(gè)示例代碼:

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

int main() {
    int rows, cols;
    
    printf("Enter number of rows: ");
    scanf("%d", &rows);
    
    printf("Enter number of columns: ");
    scanf("%d", &cols);
    
    // 分配內(nèi)存
    int **arr = (int **)malloc(rows * sizeof(int *));
    for (int i = 0; i < rows; i++) {
        arr[i] = (int *)malloc(cols * sizeof(int));
    }
    
    // 初始化數(shù)組
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            arr[i][j] = i * cols + j;
        }
    }
    
    // 打印數(shù)組
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    
    // 釋放內(nèi)存
    for (int i = 0; i < rows; i++) {
        free(arr[i]);
    }
    free(arr);
    
    return 0;
}

在這個(gè)示例中,首先用戶輸入行數(shù)和列數(shù),然后使用malloc函數(shù)動(dòng)態(tài)分配內(nèi)存來創(chuàng)建一個(gè)二維數(shù)組。接著初始化數(shù)組,并打印數(shù)組的值。最后,釋放分配的內(nèi)存。

需要注意的是,在動(dòng)態(tài)創(chuàng)建二維數(shù)組時(shí),需要手動(dòng)釋放分配的內(nèi)存,以避免內(nèi)存泄漏。

0