server-api-memcpy

原型

The memcpy() function copies n bytes from memory area src to memory area dest. The memory areas must not overlap. Use memmove(3) if the memory areas do overlap.

用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。
与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束’\0’而结束。
指针src和dest所指的内存区域不可重叠。

函数原型
1
2
3
4
5
6
7
8
9
10
11
12
13
// dest
// 拷贝到的目的内存区域的指针
// src
// 拷贝参考的内存区域的指针
// n
// 要拷贝的内存字节大小
//
// return:
// The memcpy() function returns a pointer to dest.
// 返回指向dest的指针
//
//
void *memcpy(void *dest, const void *src, size_t n);

使用参考

简单的复制操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string.h>
#include <stdio.h>

int main()
{
char strb[30]="bcopy string!!!";
char strm[30]="memcpy string???";
char dest[30]="dest ";

printf("ori strb: %s\n", strb);
printf("ori strm: %s\n", strm);
printf("ori dest: %s\n", dest);

bcopy(strb, dest, 30);
printf("bcopy dest: %s\n", dest);

memcpy(dest, strm, 30);
printf("memcpy dest: %s\n", dest);

return 0;
}