我有一个动态创建的二维数组。
int **abc = new int*[rows];
for (uint32_t i = 0; i < rows; i++)
{
abc[i] = new int[cols];
}
我想用一些值(比如1)填充数组。我可以遍历每个元素并执行此操作。
但是是否有更简单的方法?我正在尝试使用
memset
和std::fill_n
,如此帖子中所述。std::fill_n(abc, rows * cols, 1);
memset(abc, 1, rows * cols * sizeof(int));
使用memset会导致我的程序崩溃。使用fill_n会产生编译错误。
invalid conversion from 'int' to 'int*' [-fpermissive]
我在这里做错了什么吗?
int (*abc)[cols]=malloc(rows*sizeof(*abc)); memset(abc, 1, rows*sizeof(*abc));
是合法的C代码,自从C99以来,但在相当一段时间内在C++中是不可行的。 - cmaster - reinstate monica