相关疑难解决方法(0)

如何将多维数组分配给临时变量?

我想将一个静态分配的多维数组分配给一个临时变量.请考虑以下示例:

void foo(int b[3][2])
{
    b[1][1] = 1; // no segmentation fault
}

int main()
{
    int a[3][2] = {{1, 2}, {11, 12}, {21, 22}};

    foo(a);

    int** c;
    c = (int**)&a;
    c[1][1] = 1; // segmentation fault on execution

    int* d[3];
    d[0] = (int*)&(a[0]);
    d[1] = (int*)&(a[1]);
    d[2] = (int*)&(a[2]);
    d[1][1] = 1; // no segmentation fault

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

基本上我想要做的编译器与参数什么bfoo().但我能提出的唯一可行的解​​决方案是d.有没有那么复杂的方式?

c++

7
推荐指数
3
解决办法
1万
查看次数

标签 统计

c++ ×1