我想用默认的0值初始化2d数组。rows
和 columns
是动态变化的值
int data[rows][columns] = { {}, {} };
并得到错误
error: variable-sized object 'data' may not be initialized
int data[rows][columns] = { {}, {} };
我做错了什么?
删除''= { {}, {} }''。
由于后来在草图中不能添加整个数组,所以我认为你是按行和按colum插入到数组中的。
据我所知,正如解释 此处如果你不使用动态分配(例如 malloc
),数值会自动初始化为 0
.所以,干脆:
#define rows (3)
#define columns (4)
//...
int data[rows][columns];
//...
int main(){
//...
}
请注意 价值的 rows
和 columns
必须在编译时知道。
然而,当你使用 malloc
,你可以对指数进行迭代。
for(int i=0;i<rows;i++){
for(int j=0;j<columns;i++){
data[i][j]=0;
}
}