- /* file: main.c */
-
#include <stdio.h>
-
#include <stdlib.h>
-
-
#define __assert(x)
-
-
static void * __memmove (void * dest, const void *src, size_t len)
-
{
-
__assert(dest&&src);
-
unsigned char* dest_p = (unsigned char*)dest;
-
const unsigned char* src_p = (const unsigned char*)src;
-
if (dest_p == src) return dest_p;
-
if (dest_p < src_p)
-
while (len--) *dest_p++ = *src_p++; /* copy from header */
-
else
-
while (len--) *(dest_p+len)=*(src_p+len); /* copy from tailer */
-
return dest_p;
-
}
-
-
#define COUNT 5
-
-
int main(void)
-
{
-
char* pnew;
-
int* array;
-
int i = 0;
-
array = (int*)malloc(sizeof(int)*COUNT);
-
__assert(array);
-
memset(array, 0, sizeof(int)*COUNT);
-
while (i < COUNT) {
-
array[i] = i;
-
i++;
-
}
-
for (i=0; i < COUNT; i++)
-
printf("%d ", array[i]);
-
printf("\n");
-
-
__memmove(array+2, array, sizeof(int)*3);
-
for(i=0; i<COUNT; i++){
-
printf("%d\n",array[i]);
-
}
-
free (array);
- }