#include#include#include#includevoid *my_memcpy(void *dest,const void *src,int count)
return ret;
}int main()
; int arr2[10] = ;
int count_1 = sizeof(arr1)/sizeof(arr1[0]);
int count_2 = sizeof(arr2);
my_memcpy(arr1,arr2,count_2); //陣列拷貝
for(;i < count_1;i++)
printf("\n");
system("pause");
return 0;
}
在回答上面提出的問題之前,這裡先提出乙個概念---記憶體重疊,當上題中的 arr1 在記憶體中的整體位置比 arr2 在記憶體中的整體位址高或者低時,這是我們說二者不存在記憶體重疊問題,這裡的高或低對我們函式實現拷貝功能無任何影響;反之,我們已經建立了記憶體重疊的概念;二者出現記憶體重疊時,當 arr1 的位置高於 arr2 時,由 memcpy 函式的實現過程中發現此時能完成我們預期的拷貝工作,當 arr1 的位置低於 arr2 時,不難發現用 memcpy 函式處理得不到我們想要的結果,下面的 memmove 函式能彌補該函式在這種情況下的不足。
memmove 函式說明:msdn 中對該函式原型和返回值的描述為:函式原型:void *memmove( void *dest, const void *src, size_tcount);返回值:memmovereturns the value of dest.
#include#include#includevoid *my_memmove(void *dest,const void *src,int count)} else
} return ret;
}int main()
; char *src = "hello word!";
int count = strlen(src) + 1;
printf("%s",my_memmove(dest,src,count));
system("pause");
return 0;
}
注: memcpy 和 memmove 函式不僅可以處理字串,還能處理陣列。
模擬實現Spring IOC
通過在類上標註 registration 註冊進容器,injection從容器注入物件 容器類 public class springcontainer else bean.setbeanclass c mappropsmap new hashmap 處理注入屬性 field props c.get...
模擬實現strcmp
函式簡介 原型 int strcmp const char s1,const char s2 所在標頭檔案 string.h 功能 比較字串s1和s2。一般形式 strcmp 字串1,字串2 說明 當s1注意不是 1 當s1 s2時,返回值 0 當s1 s2時,返回正數 注意不是1 如下 int m...
模擬實現strncat
模擬實現strncat 在系統庫函式中,存在strncat這個函式,它用於字串的追加,就是在乙個字串後面再追加乙個字串,它的函式原型為 char strncat char strdest,const char strsource,size t count 在其中,strdest為目標字串,strso...