Programma C per copiare un array in un altro usando i puntatori

Programma C per copiare un array in un altro usando i puntatori

Scrivete un programma C per copiare gli elementi di un array in un altro array usando i puntatori. Come copiare gli elementi dell'array da un array all'altro utilizzando i puntatori. Logica per copiare un array in un altro array usando i puntatori nella programmazione C.

Esempio

Inserimento

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

Uscita

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

Conoscenze richieste

Programmazione C di base, Array, Puntatori, Array e Puntatori

Logica per copiare un array in un altro array usando i puntatori

Logica descrittiva passo passo per copiare un array in un altro utilizzando i puntatori.

  1. Inserisci la dimensione e gli elementi nel primo array, salvalo in una variabile, ad esempio size e source_array .
  2. Dichiara un altro array, ad esempio dest_array per memorizzare una copia di source_array .
  3. Dichiara un puntatore a source_array pronuncia *source_ptr = source_array e un altro puntatore a dest_array pronuncia *dest_ptr = dest_array .
  4. Copia elementi da source_ptr a desc_ptr utilizzando *desc_ptr = *source_ptr .
  5. Incrementa i puntatori source_ptr e desc_ptr entro 1.
  6. Ripeti i passaggi 3 e 4 fino a source_ptr esiste in source_arr intervallo di memoria.

Programma per copiare un array in un altro usando i puntatori

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

Uscita

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,

Post consigliati

  • Indice esercizi di programmazione di array e matrici.
  • Programma C per sommare due numeri usando i puntatori.
  • Programma C per utilizzare i puntatori.
  • Programma C per scambiare due numeri usando i puntatori.
  • Programma C per inserire e stampare elementi di array usando i puntatori.