我现在对C中的指针感到疯狂。我有以下两个多维数组:
int num0[5][3] =
{ {0,1,0},
{1,0,1},
{0,1,0},
{1,0,1},
{0,1,0}
};
int num1[5][3] =
{ {1,1,1},
{1,0,1},
{0,1,1},
{0,1,0},
{1,0,0}
};
然后将它们打包到另一个数组中:
int (*numbers[])[3] = { num0, num1 };
如果我这样做:
printf( "Result: %d\n", numbers[0][2][2] );
我得到了预期的结果,在这种情况下结果:1。
但是,我想将数字[0]分配给另一个变量。所以在现代编程语言中,你可以做一些简单的事情:
int newvar[5][3] = numbers[0];
printf( "Result: %d\n", newvar[2][2] );
即使我的指针知识有限,我知道这不会起作用(当然也没有)。但是对于我的生活,我无法弄清楚正确的语法使其发挥作用(更重要的是,了解为什么它有效)。
如果有人可以帮助我,我真的很感激!
由于
答案 0 :(得分:2)
您不能在C中分配数组,使用memcpy
复制数组:
memcpy(newvar, numbers[0], sizeof newvar);