我想将一行二维数组分配给一维数组,这就是我想要做的。
int words[40][16];
int arrtemp[16];
arrtemp=words[i];
问问题
1988 次
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 回答