我想将一行2d数组分配给1d数组,这就是我想要做的。
int words[40][16];
int arrtemp[16];
arrtemp=words[i];
答案 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
。