C-Programm zum Kopieren eines Arrays in ein anderes mithilfe von Zeigern

C-Programm zum Kopieren eines Arrays in ein anderes mithilfe von Zeigern

Schreiben Sie ein C-Programm, um ein Array-Element mithilfe von Zeigern in ein anderes Array zu kopieren. So kopieren Sie Array-Elemente mithilfe von Zeigern von einem Array in ein anderes Array. Logik zum Kopieren eines Arrays in ein anderes Array mithilfe von Zeigern in der C-Programmierung.

Beispiel

Eingabe

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

Ausgabe

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

Erforderliche Kenntnisse

Grundlegende C-Programmierung, Array, Zeiger, Array und Zeiger

Logik zum Kopieren eines Arrays in ein anderes Array mithilfe von Zeigern

Schritt-für-Schritt-Beschreibungslogik zum Kopieren eines Arrays in ein anderes mithilfe von Zeigern.

  1. Gib Größe und Elemente in das erste Array ein, speichere es in einer Variablen, sagen wir size und source_array .
  2. Deklarieren Sie ein anderes Array, sagen Sie dest_array um eine Kopie von source_array zu speichern .
  3. Deklarieren Sie einen Zeiger auf source_array sagen Sie *source_ptr = source_array und ein weiterer Zeiger auf dest_array sagen Sie *dest_ptr = dest_array .
  4. Elemente aus source_ptr kopieren bis desc_ptr mit *desc_ptr = *source_ptr .
  5. Zeiger inkrementieren source_ptr und desc_ptr um 1.
  6. Wiederholen Sie Schritt 3 und 4 bis source_ptr existiert in source_arr Speicherbereich.

Programm zum Kopieren eines Arrays in ein anderes mithilfe von Zeigern

/**
 * 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));
    }
}

Ausgabe

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,

Empfohlene Beiträge

  • Index der Übungen zur Array- und Matrixprogrammierung.
  • C-Programm zum Addieren zweier Zahlen mit Zeigern.
  • C-Programm zur Verwendung von Zeigern.
  • C-Programm zum Vertauschen zweier Zahlen mit Hilfe von Zeigern.
  • C-Programm zum Eingeben und Drucken von Array-Elementen mithilfe von Zeigern.