void *memmove( void* dest, const void* src, size_t count );数据拷贝,不需要CPU帮助

  • 分享到

    腾讯微博 QQ空间 新浪微博 人人网 朋友网

memmove

编辑词条

编辑词条

-->

memmove用于从src拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。

快速导航


大事记

光影集锦

图册集锦

花絮视频

1函数简介

原型:void *memmove( void* dest, const void* src, size_t count );

头文件:

功能:由src所指内存区域复制count个字节到dest所指内存区域。

相关函数:memset、memcpy

2程序示例

// memmove.c

#include

#include

int main(void)

{

char s[]="Golden Global View";

memmove(s,s+7,strlen(s)+1-7);

printf("%s",s);

getchar();

return 0;

}

MSDN上也有相关示例[1]

参考资料:

1.

MSDN

http://msdn.microsoft.com/zh-cn/lib

void *memmove( void* dest, const void* src, size_t count );数据拷贝,不需要CPU帮助,布布扣,bubuko.com

时间: 2024-08-04 01:48:10

void *memmove( void* dest, const void* src, size_t count );数据拷贝,不需要CPU帮助的相关文章

invalid conversion from `const void*' to `void*'

在编译一个工程时出错,使用memcpy函数处报错 invalid conversion from `const void*' to `void*' void image2mat(const image<uchar>* I, cv::Mat& img){ int width = I->width(); int height = I->height(); img.create(height, width, CV_8UC1); memcpy(img.datastart, (cha

x86_64 xercexc: error: cast from &#39;const void*&#39; to &#39;long int&#39; loses precision [-fpermissive]

mingw编译x86_64版本xerces-c-2.8.0: 修改src/xercesc/util/HashPtr.cpp: unsigned int HashPtr::getHashVal(const void *const key, unsigned int mod , MemoryManager* const) { return ((long long)key % (unsigned long)mod); } 修改src/xercesc/internal/XSerializeEngine.

const void *a 与 void *const a 的差别

const void *a 这是定义了一个指针a,a能够指向随意类型的值,但它指向的值必须是常量. 在这样的情况下,我们不能改动被指向的对象,但能够使指针指向其它对象. 比如: const void *a:*a=0x123;//是编译通只是的,由于*a中放的是个const值. const值是不能被改变的. const int  m=1;     const int n=2; a=&m;    a=&n;//编译能够通过. void* const  a 这是定义了一个const指针a.a能够

void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别?

void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别? const void fun(){};和void const fun(){};两个相同. 如果采用"按址传递方式"的函数返回值加const 修饰,那么函数返回值(即地址)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针. 如果采用"按值传递方式"的函数返回值加const 修饰,由于函数会把返回值复制到外部临时的存储单元

符号(void *)何解?符号(void **)又何解??

http://bbs.csdn.net/topics/70050852 对于多级指针或者数组,要掌握正确的识别方法:void*  是说: 这是一个指针,去掉一个(*)就是它所指向的,在这里是指向放void型的地方:void**  是说: 这也是一个指针,去掉一个(*)就是它所指向的,它指向一个放void*型的地方.如下#include <iostream> int main(int argc,int * argv[]){  int *i[2];  int a = 0;  int b = 1; 

ON_WM_TIMER() void (__cdecl xx::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)

ON_WM_TIMER()在编译器从32位转换为64位的时候, 出现的问题; class CFlatComboBox : public CComboBox   (基类为CWnd) 为了重载CWnd的函数:OnTimer(UINT nIDEvent) 需要在MASSEGE_MAP()加入: ON_WM_TIMER() 然后再CFlatComboBox 中加入相应函数: afx_msg void OnTimer(UINT nIDEvent); 此时切换到win64就会出错: void (__cdec

C++ Primer 学习笔记_19_类与数据抽象(5)_初始化列表(const和引用成员)、拷贝构造函数

C++ Primer 学习笔记_19_类与数据抽象(5)_初始化列表(const和引用成员).拷贝构造函数  从概念上将,可以认为构造函数分为两个阶段执行: 1)初始化阶段: 2)普通的计算阶段.计算阶段由构造函数函数体中的所有语句组成. 一.构造函数初始化列表 推荐在构造函数初始化列表中进行初始化 1.对象成员及其初始化 <span style="font-size:14px;">#include <iostream> using namespace std;

void指针意义、Const、volatile、#define、typedef、接续符

1.C语言规定只有相同类型的指针才可以相互赋值. Void*指针作为左值用于接收任意类型的指针, void*指针作为右值赋给其他指针时需要强制类型转换. 2.在C语言中Const修饰的变量是只读的,本质还是变量. 口诀:左数右指  不可改变: 当Const出现在*号左边时,指针指向的数据为常量. 当Const出现在*号右边时,指针本身为常量. const int* p ; //P可变,P指向的内容不可变 int const * p; //跟上一句一样 int *const p; //p不可变,p

Img src用base数据

<img src='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARC