2D配列の1行を1D配列に割り当てたいのですが、これが私がやりたいことです。
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 に答える