如何在Arduino中用默认0值初始化空的2D数组?

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

我想用默认的0值初始化2d数组。rowscolumns 是动态变化的值

int data[rows][columns] = { {}, {} };

并得到错误

error: variable-sized object 'data' may not be initialized
   int data[rows][columns] = { {}, {} };

我做错了什么?

multidimensional-array arduino
1个回答
0
投票

删除''= { {}, {} }''。

由于后来在草图中不能添加整个数组,所以我认为你是按行和按colum插入到数组中的。


0
投票

据我所知,正如解释 此处如果你不使用动态分配(例如 malloc),数值会自动初始化为 0.所以,干脆:

#define rows (3)
#define columns (4)

//...

int data[rows][columns];

//...

int main(){ 
    //...
}

请注意 价值的 rowscolumns 必须在编译时知道。

然而,当你使用 malloc,你可以对指数进行迭代。

for(int i=0;i<rows;i++){
    for(int j=0;j<columns;i++){
        data[i][j]=0;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.