0

我想将一行二维数组分配给一维数组,这就是我想要做的。 int words[40][16]; int arrtemp[16]; arrtemp=words[i];

4

2 回答 2

5

使用std::copy

int words[40][16]; //Be sure to initialise words and i at some point
int arrtemp[16];
//If you don't have std::begin and std::end,
//use boost::begin and boost::end (from Boost.Range) or
//std::copy(words[i] + 0, words[i] + 16, arrtemp + 0) instead.
std::copy(std::begin(words[i]), std::end(words[i]), std::begin(arrtemp));
于 2012-05-01T13:20:24.020 回答
3

数组在 C 和 C++ 中是不可变的。您不能重新分配它们。

您可以使用memcpy

memcpy(arrtemp, words[i], 16 * sizeof(int) );

16 * sizeof(int)这会将字节从复制words[i]arrtemp

于 2012-05-01T13:18:32.967 回答