この非常に役立つ Q/A を見つけた後:配列のすべてのメンバーを同じ値に初期化する方法は? の配列間でデータを交換する方法に関する私の絶え間ない問題に相当するものがあるかどうか疑問に思いましたC
。
これらは、私が最も興味を持っているいくつかのケースです。
- 同じ型から同じ型、同じサイズ (例: char から char)
- ある型から別の型へ、同じサイズで (例: const char から unit8 へ)
- 小さいものから大きいものへ (例: test[7] から test[70])
上記のものに対する私の方法は次のようになります-例:
array1 = array2
memcpy(&array2,array1,sizeof(array1))
- Eighter
memcpy
も、または要素を介して for ループ
ここの誰かが、さまざまな配列交換ルーチンの精巧に抽出された例のコレクションを提供するか、どこで見つけられるかを知っていることを願っています。それは、私が自分でそれを機能させることができないということではなく、解決策がしっかりしている場合、この絶え間ない不安があるということです.
ああ、私はそれらの for ループが本当に嫌いで、各要素を個別に割り当てます。私にとって、それらを使用する唯一の理由は、交換が実行される前に追加の処理が必要な場合です。たとえば、最初に転送された値をインクリメントするなどです。
これが Q/A-Style に合わない場合は、誰かが私の試みを確認または改善してくれれば幸いです。
#define SIZEOF_ARRAY = 16;
uint8 array2[SIZEOF_ARRAY+1];
const char array1[SIZEOF_ARRAY+1] = {"test"};
memcpy(&array2,array1,sizeof(array1))