首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

分配和返回二维数组指针,其中行和列是运行时参数

在C语言中,可以使用动态内存分配来实现分配和返回二维数组指针,其中行和列是运行时参数。下面是一个示例代码:

代码语言:txt
复制
#include <stdio.h>
#include <stdlib.h>

// 函数原型:分配并返回二维数组指针
int** allocateArray(int rows, int cols) {
    int** arr = (int**)malloc(rows * sizeof(int*)); // 分配行指针数组

    for (int i = 0; i < rows; i++) {
        arr[i] = (int*)malloc(cols * sizeof(int)); // 分配每行的列空间
    }

    return arr;
}

// 函数原型:释放二维数组内存
void freeArray(int** arr, int rows) {
    for (int i = 0; i < rows; i++) {
        free(arr[i]); // 释放每行的列空间
    }

    free(arr); // 释放行指针数组
}

int main() {
    int rows, cols;

    printf("请输入二维数组的行数和列数:");
    scanf("%d %d", &rows, &cols);

    // 分配二维数组内存
    int** arr = allocateArray(rows, cols);

    // 对二维数组赋值
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            arr[i][j] = i * cols + j;
        }
    }

    // 打印二维数组
    printf("二维数组的内容为:\n");
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }

    // 释放二维数组内存
    freeArray(arr, rows);

    return 0;
}

上述代码中,allocateArray函数用于分配并返回二维数组指针,参数rowscols表示行数和列数。首先,使用malloc函数分配一个行指针数组,长度为rows。然后,使用循环为每一行分配列空间,长度为cols。最后,返回分配好的二维数组指针。

freeArray函数用于释放二维数组内存,参数arr为二维数组指针,rows为行数。首先,使用循环释放每一行的列空间。然后,释放行指针数组的内存。

main函数中,首先获取用户输入的行数和列数。然后,调用allocateArray函数分配二维数组内存,并对其进行赋值。最后,打印二维数组的内容。最后,调用freeArray函数释放二维数组内存。

这样,就实现了分配和返回二维数组指针,其中行和列是运行时参数的功能。

关于腾讯云相关产品,可以参考以下链接:

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券