ポインターを使用してある配列を別の配列にコピーする C プログラム

ポインターを使用して、ある配列要素を別の配列にコピーする C プログラムを作成します。ポインターを使用して、ある配列から別の配列に配列要素をコピーする方法。 C プログラミングでポインターを使用して、ある配列を別の配列にコピーするロジック。

入力

Input array1 elements: 10 -1 100 90 87 0 15 10 20 30

出力

Array1: 10 -1 100 90 87 0 15 10 20 30
Array2: 10 -1 100 90 87 0 15 10 20 30

必要な知識

基本的な C プログラミング、配列、ポインター、配列とポインター

ポインタを使用してある配列を別の配列にコピーするロジック

ポインターを使用して、ある配列を別の配列にコピーする段階的な説明ロジック。

<オール>
  • 最初の配列にサイズと要素を入力し、size などの変数に格納します と source_array .
  • dest_array などの別の配列を宣言します source_array のコピーを保存する .
  • source_array へのポインタを宣言する *source_ptr = source_array と言ってください dest_array へのもう 1 つのポインタ *dest_ptr = dest_array と言ってください .
  • source_ptr から要素をコピー desc_ptrまで *desc_ptr = *source_ptr を使用 .
  • ポインタをインクリメント source_ptrdesc_ptr 1.
  • source_ptr までステップ 3 と 4 を繰り返します source_arr に存在します メモリ範囲。
  • ポインタを使用してある配列を別の配列にコピーするプログラム

    /**
     * C program to copy an array to another array using pointers
     */
    
    #include <stdio.h>
    
    #define MAX_SIZE 100 // Maximum array size
    
    
    /* Function declaration to print array */
    void printArray(int arr[], int size);
    
    
    int main()
    {
        int source_arr[MAX_SIZE], dest_arr[MAX_SIZE];
        int size, i;
    
        int *source_ptr = source_arr;   // Pointer to source_arr
        int *dest_ptr   = dest_arr;     // Pointer to dest_arr
    
        int *end_ptr;
    
    
        /*
         * Input size and elements in source array
         */
        printf("Enter size of array: ");
        scanf("%d", &size);
        printf("Enter elements in array: ");
        for (i = 0; i < size; i++)
        {
            scanf("%d", (source_ptr + i));
        }
    
    
        // Pointer to last element of source_arr
        end_ptr = &source_arr[size - 1];
    
    
        /* Print source and destination array before copying */
        printf("\nSource array before copying: ");
        printArray(source_arr, size);
    
        printf("\nDestination array before copying: ");
        printArray(dest_arr, size);
    
    
    
        /*
         * Run loop till source_ptr exists in source_arr
         * memory range.
         */
        while(source_ptr <= end_ptr)
        {
            *dest_ptr = *source_ptr;
    
            // Increment source_ptr and dest_ptr
            source_ptr++;
            dest_ptr++;
        }
    
    
        /* Print source and destination array after copying */
        printf("\n\nSource array after copying: ");
        printArray(source_arr, size);
    
        printf("\nDestination array after copying: ");
        printArray(dest_arr, size);
    
    
        return 0;
    }
    
    
    /**
     * Function to print array elements.
     * 
     * @arr     Integer array to print.
     * @size    Size of array.
     */
    void printArray(int *arr, int size)
    {
        int i;
    
        for (i = 0; i < size; i++)
        {
            printf("%d, ", *(arr + i));
        }
    }

    出力

    Enter size of array: 10
    Enter elements in array: 10 -1 100 90 87 0 15 10 20 30
    
    Source array before copying: 10, -1, 100, 90, 87, 0, 15, 10, 20, 30,
    Destination array before copying: 0, 0, 127, 127, 0, 1, 0, 16777472, 0, 0,
    
    Source array after copying: 10, -1, 100, 90, 87, 0, 15, 10, 20, 30,
    Destination array after copying: 10, -1, 100, 90, 87, 0, 15, 10, 20, 0,

    おすすめの投稿

    • 配列と行列のプログラミング演習のインデックス
    • ポインタを使用して 2 つの数値を加算する C プログラム
    • ポインタを使用する C プログラム
    • ポインタを使用して 2 つの数値を交換する C プログラム
    • ポインタを使用して配列要素を入力および出力する C プログラム