温馨提示×

c语言动态创建二维数组怎么实现

小亿
84
2024-08-11 16:45:39
栏目: 编程语言

在C语言中,可以使用指针和动态内存分配来动态创建二维数组。以下是一个示例代码:

#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);
    
    // 分配内存
    int **arr = (int **)malloc(rows * sizeof(int *));
    for (int i = 0; i < rows; i++) {
        arr[i] = (int *)malloc(cols * sizeof(int));
    }
    
    // 初始化数组
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            arr[i][j] = i * cols + j;
        }
    }
    
    // 打印数组
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
    
    // 释放内存
    for (int i = 0; i < rows; i++) {
        free(arr[i]);
    }
    free(arr);
    
    return 0;
}

在这个示例中,首先用户输入行数和列数,然后使用malloc函数动态分配内存来创建一个二维数组。接着初始化数组,并打印数组的值。最后,释放分配的内存。

需要注意的是,在动态创建二维数组时,需要手动释放分配的内存,以避免内存泄漏。

0