亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

模擬實現memmove函數

發布時間:2020-07-16 01:06:22 來源:網絡 閱讀:380 作者:be_better_ 欄目:編程語言

完成這道題目之前首先要明確memmove是對內存進行操作,所以函數的參數是void *,即可以操作任意類型的數據。

其次要明白兩個待處理數據的關系,于是我畫了一張圖幫助大家理解
模擬實現memmove函數
上面的是特殊情況,發生內存重疊時只有這種情況是需要從右向左進行操作的,如果這種情況還是按照從左往右操作的話就會把想要拷貝的東西一直重復的拷貝下去,除這種情況之外都只需從左往右拷貝

再然后就是如何實現代碼的過程了,其方法和之前說過的拷貝函數類似,進行值的交換,在這里就不詳細贅述了。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
void my_memmove(void dst,const void src, int num)
{
void
ret = dst;
if (dst > src&&(char )dst <((char ) src + num))//dst包含于src的情況,從后往前進行操作
{
dst = (char )dst + num - 1;//將dst指向最后一個元素
src = (char
)src + num - 1;
while (num--)
{
(char)dst = (char)src;
dst=(char )dst-1;
src=(char
)src-1;
}
}
else
{
while (num--)
{
(char)dst = (char)src;
dst = (char )dst + 1;
src = (char
)src + 1;
}
}
return (ret);
}
int main()
{
char dst[100] = "hello world";

my_memmove(dst + 1, dst, strlen(dst) + 1);
printf("%s",dst);
system("pause");
return 0;

}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c
AI

政和县| 天等县| 遵义市| 桐庐县| 百色市| 永泰县| 永嘉县| 平安县| 社旗县| 晋州市| 罗江县| 文化| 阜宁县| 彭阳县| 繁昌县| 田林县| 九龙县| 丽江市| 北辰区| 安平县| 泰宁县| 襄樊市| 南江县| 宁乡县| 公安县| 万载县| 延吉市| 文山县| 长泰县| 承德市| 柞水县| 邵阳市| 盘锦市| 盐边县| 广丰县| 中西区| 章丘市| 丹凤县| 安图县| 攀枝花市| 泗阳县|