如何在 C 中初始化动态分配的二维数组的值?

问题描述 投票:0回答:1

我正在尝试创建 2D 数组并将其作为指向 C 函数内的 2D 数组的指针传递。我尝试使用大括号语法来初始化 1D 数组元素的值,但我不知道如何做用多维的方式来实现它。我不想在一行中写入每个单元格的值,而是在代码中每行键入每一行的值。

int main() {
    int r = 3, c = 5;
    int **test = malloc(r*sizeof(int*));
    test[0] = (int[]) {0,0,0,0};
    test[1] = (int[]) {1,2,4,1};
    test[2] = (int[]) {3,3,3,3}; 

    printf("%d\n", f(r,c,test));
    return 0;
}

我尝试分配一个指针数组并为每一行分配值,但编译器不允许在 int 指针参数上使用 int[] 类型。我对这些大括号如何分配值和指针感到困惑。

arrays c initialization dynamic-memory-allocation
1个回答
0
投票

结构体{ int foo; // 需要清除的字段 字符栏; // 其他字段 // 可能有用于对齐目的的填充 };

© www.soinside.com 2019 - 2024. All rights reserved.