阅读背景:

这是返回二维数组的有效方法吗?

来源:互联网 

Given the following C-code:

给出以下C代码:

#include <stdio.h>

int mat1[2][4] = {
    {9, 10, 11, 12},
    {13, 14, 15, 16}
};

int (*(transpose)(int matrix[][4]))[2] {
    static int mat[4][2];
    int i;
    int j;

    printf("I am the function transpose()\nand I'm transposing 2x4 matrices.\n\n");
    for (i = 0; i < 2; i++) {
        for (j = 0; j < 4; j++) {
            mat[j][i] = matrix[i][j];
        }
    }
    return mat;
}

int main() {
    int (*mat_transpose)[2];
    int i;
    int j;
    mat_transpose = transpose(mat1);

    for (j = 0; j < 2; j++) {
        for (i = 0; i < 4; i++) {
            printf("mat_transpose[%d][%d] = %d\n", i, j, mat_transpose[i][j]);
        }
    }
    return 0;
}
#inclu



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: