/key_point/0612/memcpy.c
C | 37 lines | 25 code | 9 blank | 3 comment | 5 complexity | cdb69feba1b0bc4ac96a76f8b3f87561 MD5 | raw file
- /* memcpy.c */
- #include <stdio.h>
- #include <assert.h>
- /* memcpy */
- void *memcpy(void *dest, const void *src, int n)
- {
- assert(dest != NULL);
- assert(src != NULL);
- assert(n >= 0);
- if (dest == src)
- return dest;
- char *d = (char *) dest;
- const char *s = (const char *) src;
- while (n--) {
- *d++ = *s++;
- }
- return dest;
- }
- /* main */
- int main(int argc, const char *argv[])
- {
- char str[] = "hello";
- char s[6];
- memcpy(s, str, sizeof(s));
- printf("%s\n", s);
- printf("%s\n", (char *) memcpy(s, str, sizeof(s)));
- return 0;
- }