将一行2d数组分配给1d数组

时间:2012-05-01 13:16:56

标签: c++ arrays

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

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分:3)

数组在C和C ++中是不可变的。你无法重新分配它们。

您可以使用memcpy

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

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