1、#include <string.h>
void *memcpy( void *to, const void *from, size_t count );
功能:函数从from中复制count 个字符到to中,并返回to指针。 如果to 和 from 重叠,则函数行为不确定。
注意点:(1)第一个参数是目标指针,第二个参数是起始指针,不要搞错了。
(2)拷贝过程中,计数的单位是字符,也就是字节。
例子:
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a[4]={1,2,3,4};
int b[4];
memcpy(b,a,4*4); //拷贝一维的int数组
for(int i=0;i< sizeof(b)/4; i++)
cout<<b[i]<<" ";
cout<<endl;
int c[2][2]={1,2,3,4}; //拷贝二维的int数组
int d[2][2];
memcpy(d,c,4*4);
for(int i=0;i<2; i++){
for(int j=0;j<2;j++)
cout<<d[i][j]<<" ";
cout<<endl;
}
char e[2][2]={'a','b','c','d'}; //拷贝二维的char数组
char f[2][2];
memcpy(f,e,4);
for(int i=0;i<2; i++){
for(int j=0;j<2;j++)
cout<<f[i][j]<<" ";
cout<<endl;
}
}
另外一个例子程序:
struct map{
int a;
string b;
};
int main(){
struct map a[2]={{4,"hello"},{1,"world"}},b[2];
memcpy(b,a,sizeof(map)*2);
cout<<b[0].b<<endl;
}
~~~~~~~~~~~~~~~~~~~~~