C examples for Memory:Memory Function
Using memcpy() and memmove() to operate memory data
#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'); }