#include<iostream> #include<algorithm> #include<string> #include<cstring> #include<ctime> #include<windows.h> using namespace std; struct CopyStruct { double a; double b; }; void StructCopyMemory(void *destion,void *source,int count) { CopyStruct *des=(CopyStruct*)destion; CopyStruct *sou=(CopyStruct*)source; int con=count/sizeof(CopyStruct); for(int i=0;i<con;i++) { *(des++)=*(sou++); } con=count%sizeof(CopyStruct); char *chdes=(char*)destion; char *chsou=(char*)source; for(int i=0;i<con;i++) { *(chdes++)=*(chsou++); } } void DouCopyMemory(void *destion,void *source,int count) { double *des=(double*)destion; double *sou=(double*)source; int con=count/sizeof(double); for(int i=0;i<con;i++) { *(des++)=*(sou++); } con=count%sizeof(double); char *chdes=(char*)destion; char *chsou=(char*)source; for(int i=0;i<con;i++) { *(chdes++)=*(chsou++); } } void IntCopyMemory(void *destion,void *source,int count) { int *des=(int*)destion; int *sou=(int*)source; int con=count/sizeof(int); for(int i=0;i<con;i++) { *(des++)=*(sou++); } con=count%sizeof(int); char *chdes=(char*)destion; char *chsou=(char*)source; for(int i=0;i<con;i++) { *(chdes++)=*(chsou++); } } void CharCopyMemory(void *destion,void *source,int count) { char *des=(char*)destion; char *sou=(char*)source; for(int i=0;i<count;i++) { *(des++)=*(sou++); } } int main() { char *buffer1=new char[200000000]; char *buffer2=new char[200000000]; StructCopyMemory(buffer2,buffer1,200000000); //DouCopyMemory(buffer2,buffer1,200000000);//218||234 //IntCopyMemory(buffer2,buffer1,200000000);281 // CharCopyMemory(buffer2,buffer1,200000000);921 //CopyMemory(buffer2,buffer1,200000000);//218 cout<<(int)clock()<<endl; return 0; }