C言語のポインタを使って配列を統合する方法は何ですか?

C言語では、2つの配列を結合するためにポインタを使用することができます。以下は1つの方法です:

  1. 2つの配列と、結合した配列を格納するためのポインタ変数を宣言します。
int arr1[] = {1, 2, 3, 4, 5};
int arr2[] = {6, 7, 8, 9, 10};
int *mergedArr;
  1. 合体した配列の長さを計算してください。
int mergedArrLength = sizeof(arr1) / sizeof(arr1[0]) + sizeof(arr2) / sizeof(arr2[0]);
  1. 合併後の配列にメモリを割り当てる。
mergedArr = (int *)malloc(mergedArrLength * sizeof(int));
  1. arr1とarr2の要素を順番にコピーして、結合後の配列に配置します。
int i;
for(i = 0; i < sizeof(arr1)/sizeof(arr1[0]); i++){
    mergedArr[i] = arr1[i];
}
for(i = 0; i < sizeof(arr2)/sizeof(arr2[0]); i++){
    mergedArr[sizeof(arr1)/sizeof(arr1[0]) + i] = arr2[i];
}
  1. 合併後の配列のポインターmergedArrは、今や合併後の配列を指しています。それを使用して、合併後の配列の要素にアクセスできます。
for(i = 0; i < mergedArrLength; i++){
    printf("%d ", mergedArr[i]);
}
  1. 使用した後に、結合された配列のメモリを解放することを忘れないでください。
free(mergedArr);

上記のコードは、配列arr1とarr2を結合して新しい配列を作成し、ポインタmergedArrを使用して結合後の配列の要素にアクセスします。

bannerAds