Using memcpy() and memmove() to operate memory data - C Memory

C examples for Memory:Memory Function

Description

Using memcpy() and memmove() to operate memory data

Demo Code

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 10//from   ww  w.  j  a  v  a  2  s  .co m
void show_array(const int ar[], int n);

int main()
{
    int values[SIZE] = {1,2,3,4,5,6,7,8,9,10};
    int target[SIZE];
    double curious[SIZE / 2] = {2.0, 2.0e5, 2.0e10, 2.0e20, 5.0e30};
    
    //values (original data)
    show_array(values, SIZE);
    memcpy(target, values, SIZE * sizeof(int));
    
    //target (copy of values)
    show_array(target, SIZE);
    
    //Using memmove() with overlapping ranges
    memmove(values + 2, values, 5 * sizeof(int));
    puts("values -- elements 0-5 copied to 2-7:");
    show_array(values, SIZE);
    
    //Using memcpy() to copy double to int
    memcpy(target, curious, (SIZE / 2) * sizeof(double));
    
    //target -- 5 doubles into 10 int positions
    show_array(target, SIZE/2);
    show_array(target + 5, SIZE/2);
   
    return 0;
}

void show_array(const int ar[], int n)
{
    int i;
    
    for (i = 0; i < n; i++)
        printf("%d ", ar[i]);
    putchar('\n');
}

Result


Related Tutorials