memcpyについて
C言語のstring.hにmemcpyというものがあります。
下のはArm GNU Toolchainのもの
void * memcpy (void *__restrict, const void *__restrict, size_t);
これは1つ目の引数に2つの目の引数を3つ目の引数のバイト数コピーするもので,
3つ目の引数はコピーする配列数じゃないです(知らなかった)
例えば
uint16_t buf1[5] = {}; uint16_t buf2[5] = {1,1,1,1,1}; memcpy(buf1,buf2,5)
としてもbuf1の配列が持つ要素とbuf2の配列が持つ要素が同じになりません。
したがって,
uint16_t buf1[5] = {}; uint16_t buf2[5] = {1,1,1,1,1}; memcpy(buf1,buf2,5*sizeof(uint16_t))
としましょう。