面試題 寫乙個memmove函式

2021-06-19 10:39:11 字數 463 閱讀 4253

面試中經常會遇到這樣一些題目,比如memmove、memcpy和strcpy等函式,用來考察程式設計基本功。memcpy不會進行記憶體重疊檢查,而memmove會進行檢查,面試的時候這個問題一般是考察這一點的,即要求檢查記憶體是否有重疊區域。還要注意的是不能直接對void*進行操作,需要轉換型別。並且函式原型src的位址需要是const*型別,即不能修改,細節。

void *memmove(void *dest, const void *source, size_t count)

{ assert((null != dest) && (null != source));

char *tmp_source, *tmp_dest;

tmp_source = (char *)source;//注意,void*型別不能直接操作,需要進行轉換。

tmp_dest = (char *)dest;

if((dest + count

乙個面試題

題目是 假設乙個 搜尋引擎收錄了2 24首歌曲,並記錄了可收聽這些歌曲的2 30條url,但每首歌的url不超過2 10個。系統會定期檢查這些url,如果乙個url不可用則不出現在搜尋結果中。現在歌曲名和url分別通過整型的song id和url id唯一確定。對該系統有如下需求 1 通過song ...

乙個面試題

在不超過最右邊的數量的情況下任意組合,要求加起來不超過20280這個數字,但達成最接近的情況,現有一種方法為 1290 4 2990 5,差170,有沒有更接近20280的答案 資料如下 4900 13790 22990 5 意思是不能超過5次,但可以使用1次,2次,3次,4次,5次。2390 31...

乙個面試題

res fromkeys name password age print res print res print id res name id res password res name 666 print res 輸出 57496360 57496360 fromkeys 建立字典時,字典中所有的...