整数配列を複製する最良の方法は何ですか? memcpy()
はそれを行う方法の1つです。 strdup()
のような機能はありますか?ある整数配列を別の配列にコピーする方法
答えて
ありません。また、strdup
も標準ではありません。もちろん、単に自分自身を書くことができます適切に使用されている場合
int * intdup(int const * src, size_t len)
{
int * p = malloc(len * sizeof(int));
memcpy(p, src, len * sizeof(int));
return p;
}
mallocがNULLを返したかどうかを確認します; – Beginner
@RomanB .:読者のためのエクササイズ! :-) –
もちろん私はやります。 :) – FourOfAKind
これは、仕事ができる:
#define arrayDup(DST,SRC,LEN) \
{ size_t TMPSZ = sizeof(*(SRC)) * (LEN); \
if (((DST) = malloc(TMPSZ)) != NULL) \
memcpy((DST), (SRC), TMPSZ); }
次に、あなたが行うことができます:
double dsrc[4] = { 1.1, 2.2, 3.3, 4.4 };
int *isrc = malloc(3*sizeof(int));
char *cdest;
int *idest;
double *ddest;
isrc[0] = 2; isrc[1] = 4; isrc[2] = 6;
arrayDup(cdest,"Hello",6); /* duplicate a string literal */
arrayDup(idest,isrc,3); /* duplicate a malloc'ed array */
arrayDup(ddest,dsrc,4); /* duplicate a regular array */
の注意事項は次のとおりです。
SRC
およびDST
のマクロパラメータは、それが、一方よりSRC
として渡されたポインタ/配列が(正しい型にキャストしない限りvoid *
)源アレイのものと一致しなければならないのタイプ- 回
を評価しますソース配列がmalloc()
であったかどうか、どの型であっても動作します。
- 1. ポインタを使ってある配列から別の配列にコピーする
- 2. 配列を配列にコピーする方法
- 3. 配列の配列をコピーまたは複製する方法
- 4. C#で整数の配列で配列を作成する方法は?
- 5. 異なるタブにある配列オブジェクトをコピーする方法
- 6. 整数配列をPythonでバイナリ配列に変換する
- 7. char配列を別のchar配列にコピー
- 8. ある配列の配列キーを別の配列と比較する
- 9. 整数の配列に
- 10. ダブル配列から別のダブル配列に特定の位置をコピーする
- 11. 整数配列を逆にする
- 12. PostgreSQLの - 親切配列を整数に整数型の列を変更するのに役立ち配列
- 13. 整数配列内のサブ配列の合計を求める
- 14. C++:文字列オブジェクトをint配列にコピーする方法は?
- 15. 整数配列の配列を素早く並べ替える
- 16. 整数配列の配列の文字列をリスト<int[]>に分割する方法は?
- 17. 配列構造体の配列内に入れ子配列のコピーを作成する方法
- 18. 文字列を配列にコピーする
- 19. 配列列のコピー
- 20. declare-styleableで整数の配列を定義する方法は?
- 21. PHPで整数からバイト配列に変換する方法
- 22. 別の文字列配列で二重配列をソートする方法は?
- 23. 配列キー数値を別の値に変更する方法
- 24. C#で構造体の配列を整列する方法は?
- 25. SQL Serverから整数配列をリトリーブする方法は?
- 26. Rubyの配列、ハッシュ、整数
- 27. 整数配列の三つ組を見つける方法
- 28. カラー配列を別のカラー配列に設定する方法は?
- 29. 配列値を別の新しい配列に初期化する方法
- 30. Perl:整数リストの整数が配列内にあるかどうかを確認する方法
単純な 'for'ループ? – Shahbaz
'strdup'はヌルターミネータに依存していますが、これはint配列にはありません。 'memcpy'の何が問題なの? –
そうです。私はstrdup()を使って文字列に起こるようなやり方でそれをやり遂げることができるかどうかを知りたかった。 – FourOfAKind