试图在C中创建一个数组数组

Chr*_*men 0 c arrays boolean

所以我有一堆布尔数组,我想把它放到一个数组中以便于访问,但由于某些原因,这并不是很有效.

我的数组看起来像这样:

boolean l1_000[8] = {1,0,0,0,0,0,0,0};

我声明我的数组数组:

boolean level1[8];
Run Code Online (Sandbox Code Playgroud)

然后我想我可以这两个中的任何一个(第一个直接声明这些数组我在大数组上设置它们):

level1[0] = {1,0,0,0,0,0,0,0};
level1[0] = l1_000;
Run Code Online (Sandbox Code Playgroud)

我也尝试过level1 [8] [],但这也没用.那么我在这里做错了什么?我该怎么做?

编辑:所以我设法通过将数组声明为布尔*level1 [8]来做到这一点,但这只允许我做level1 [0] = l1_000.有什么方法可以做level1 [0] = {1,0,0,0,0,0,0,0}吗?

Set*_*gie 5

如果要在不复制每个元素的情况下存储已创建的数组,则不能声明数组数组,但可以声明指针数组:

boolean* level1[] = {
    l1_000, // the array name decays to a pointer to the first element
    l2_000,
    // etc
};
Run Code Online (Sandbox Code Playgroud)

  • @ChristianA.Strømmen你必须选择其中一个,或者存储已经创建的数组,或者在同一行创建它们.如果您选择在同一行创建它们,请执行以下操作:`boolean level1 [] [8] = {{0,1,1,1,0,0,0,1},{1,1,1,1 ,1,1,1,1},/*etc*/};` (2认同)