中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

C語言--memcpy和memmove

發布時間:2020-08-12 07:11:27 來源:網絡 閱讀:384 作者:伯爵213 欄目:編程語言

一、memcpy

  memcpy函數的功能是從源src所指的內存地址的起始位置開始拷貝n個字節到目標dest所指的內存地址的起始位置中。

void* my_memcpy(void* dest, const void *src, size_t n)
{
	assert(dest);
	assert(src);
	char* dest_t = (char*)dest;
	char* src_t =(char*) src;	
	while (n--)
	{
		*dest_t = *src_t;
		dest_t++;
		src_t++;
	}
	return dest;
}

二、memmove

   memmove用于從src拷貝n個字符到dest,如果目標區域和源區域有重疊的話,memmove能夠保證源串在被覆蓋之前將重疊區域的字節拷貝到目標區域中。但復制后src內容會被更改。但是當目標區域與源區域沒有重疊則和memcpy函數功能相同。

void* my_memmove(void* dest, const void*src, size_t n)
{
	assert(dest);
	assert(src);
	void *ret = dest;
	char* dest_t = (char*)dest;
	char* src_t = (char*)src;
	if (dest_t <= src_t || dest_t >= (src_t + n))
	{
		// 若dst和src區域沒有重疊,則從起始處開始逐一拷貝;
		while (n--)
		{
			*dest_t++ = *src_t++;
		}
	}
	else 
	{
		// 若dst和src 區域交叉,則從尾部開始向起始位置拷貝,可以避免數據沖突
		dest_t += n - 1;
		src_t += n - 1;
		while (n--)
		{
			*dest_t-- = *src_t--;
		}
	}
	return ret;
}


向AI問一下細節

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

AI

南涧| 万安县| 三亚市| 德江县| 平南县| 喀喇| 顺平县| 远安县| 鱼台县| 扎赉特旗| 新建县| 武夷山市| 石渠县| 兴义市| 新龙县| 开平市| 孟州市| 昌平区| 泾川县| 武宁县| 晋城| 南宫市| 淮北市| 尼勒克县| 通河县| 两当县| 灌南县| 开阳县| 蓝山县| 调兵山市| 阜康市| 体育| 利川市| 明溪县| 民勤县| 漠河县| 淄博市| 黑河市| 且末县| 合川市| 永定县|