亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

深入理解memmove()與memcpy()的區(qū)別以及實(shí)現(xiàn)方法

 更新時(shí)間:2013年05月29日 16:51:44   作者:  
本篇文章是對(duì)memmove()與memcpy()的區(qū)別以及實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

代碼如下所示:
復(fù)制代碼 代碼如下:

// MemMove.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。
//
#include "stdafx.h"
#include <iostream>
using namespace std;

復(fù)制代碼 代碼如下:

void* memmove(void* dest, const void* src, size_t n)
{
 if (n <= 0)
 {
  cout << "Invalid count number." << endl;
 }
 if (dest == NULL || src == NULL)
 {
  cout << "The dest or src address is null." << endl;
 }
 if (dest == src)
 {
  cout << "The dest equals src." << endl;
 }
 if ((char*)dest <= (char*)src || (char*)dest >= (char*)src + n)
 {//對(duì)應(yīng)圖中2,3,4三種情況,賦值過程中,src中未使用的不會(huì)被覆蓋
  char* de = (char*)dest;
  const char* sr = (const char*)src;
  while (n--)
  {
   *de++ = *sr++;
  }
 }
 else
 {//對(duì)應(yīng)圖中的第一種情況
  char* de = (char*)dest + n -1;
  const char* sr = (const char*)src + n - 1;
  while (n--)
  {
   *de-- = *sr--;
  }
 }
 return dest;
}

復(fù)制代碼 代碼如下:

void* memmcpy(void* dest, const void* src, size_t n) 

  if (n <= 0) 

  cout << "Invalid count number." << endl; 

 if (dest == NULL || src == NULL) 
 { 
     cout << "The dest or src address is null." << endl; 
 } 
 if (dest == src) 
 { 
   cout << "The dest equals src." << endl; 
 } 
 char* de = (char*)dest; 
 const char* sr = (const char*)src; 
 while (n--) 
 { 
   *de++ = *sr++; 
 } 
  return dest; 


復(fù)制代碼 代碼如下:

int _tmain(int argc, _TCHAR* argv[])
{
 char* p = "hello,world"; 
 char dest[12] = {0};
 char *q = (char*)memmove(dest,p,5);
 cout << dest << endl;   
 cout << q << endl; 
 return 0;  
}

相關(guān)文章

  • CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    CreateThread()與beginthread()的區(qū)別詳細(xì)解析

    很多開發(fā)者不清楚這兩者之間的關(guān)系,他們隨意選一個(gè)函數(shù)來用,發(fā)現(xiàn)也沒有什么大問題,于是就忙于解決更為緊迫的任務(wù)去了。等到有一天忽然發(fā)現(xiàn)一個(gè)程序運(yùn)行時(shí)間很長的時(shí)候會(huì)有細(xì)微的內(nèi)存泄露,開發(fā)者絕對(duì)不會(huì)想到是因?yàn)檫@兩套函數(shù)用混的結(jié)果
    2013-09-09
  • 解析C語言中如何正確使用const

    解析C語言中如何正確使用const

    本篇文章是對(duì)C語言中如何正確使用const,進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • C語言編程時(shí)常犯十八個(gè)錯(cuò)誤小結(jié)

    C語言編程時(shí)常犯十八個(gè)錯(cuò)誤小結(jié)

    C語言的最大特點(diǎn)是:功能強(qiáng)、使用方便靈活。C編譯的程序?qū)φZ法檢查并不象其它高級(jí)語言那么嚴(yán)格,這就給編程人員留下“靈活的余地”,但還是由于這個(gè)靈活給程序的調(diào)試帶來了許多不便,尤其對(duì)初學(xué)C語言的人來說,經(jīng)常會(huì)出一些連自己都不知道錯(cuò)在哪里的錯(cuò)誤
    2013-07-07
  • C語言的動(dòng)態(tài)內(nèi)存分配及動(dòng)態(tài)內(nèi)存分配函數(shù)詳解

    C語言的動(dòng)態(tài)內(nèi)存分配及動(dòng)態(tài)內(nèi)存分配函數(shù)詳解

    這篇文章主要為大家詳細(xì)介紹了C語言的動(dòng)態(tài)內(nèi)存分配及動(dòng)態(tài)內(nèi)存分配函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++實(shí)現(xiàn)AVL樹的基本操作指南

    C++實(shí)現(xiàn)AVL樹的基本操作指南

    AVL樹是高度平衡的而二叉樹,它的特點(diǎn)是AVL樹中任何節(jié)點(diǎn)的兩個(gè)子樹的高度最大差別為1,下面這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)AVL樹的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • C語言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼

    C語言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼

    這篇文章主要介紹了C語言動(dòng)態(tài)數(shù)組的使用實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • C++編程語言中賦值運(yùn)算符重載函數(shù)(operator=)的使用

    C++編程語言中賦值運(yùn)算符重載函數(shù)(operator=)的使用

    本文主要介紹了C++編程語言中賦值運(yùn)算符重載函數(shù)(operator=)介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 淺談帶緩沖I/O 和不帶緩沖I/O的區(qū)別與聯(lián)系

    淺談帶緩沖I/O 和不帶緩沖I/O的區(qū)別與聯(lián)系

    下面小編就為大家?guī)硪黄獪\談帶緩沖I/O 和不帶緩沖I/O的區(qū)別與聯(lián)系。小編覺得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言數(shù)據(jù)結(jié)構(gòu)二叉樹先序、中序、后序及層次四種遍歷

    C語言數(shù)據(jù)結(jié)構(gòu)二叉樹先序、中序、后序及層次四種遍歷

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)二叉樹先序、中序、后序及層次四種遍歷方式,具有一定的知識(shí)性參考價(jià)值,需要的小伙伴可以先看一下
    2022-02-02
  • 詳解如何從Matlab中導(dǎo)出清晰的結(jié)果圖片

    詳解如何從Matlab中導(dǎo)出清晰的結(jié)果圖片

    寫文章的時(shí)候有時(shí)需要matlab導(dǎo)出清晰的圖片,如果直接用figure里面的保存的話不夠清晰,下面這篇文章主要給大家介紹了關(guān)于如何從Matlab中導(dǎo)出清晰的結(jié)果圖片的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評(píng)論