memcpy传参数时指定大小

来源:赵克立 分类: Win32 标签:C/C++发布时间:2018-03-27 18:05:13浏览:438
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
温馨提示:
技术类文章有它的时效性,请留意文章更新时间以及软件的版本
更新时间:
2018-03-28 11:21:14

memcpy是内存复制的意思,用着很方便,但是需要的参数很不容易搞懂,

第一个参数是目标内存地址

第二个参数是源内存地址

第三个参数是要复制的字节数量

比如下面有一个win32项目 字符集是Unicode要把一个路径中的后四个字符用memcpy给去掉,然后把新字符串放另一 内存地址,如下

TCHAR newname[MAX_PATH] = { 0 };
TCHAR *oldname = _T("E:/bin/update.zip.tmp");
int plen = _tcslen(oldname) * sizeof(TCHAR) - 4 * sizeof(TCHAR);
memcpy(newname, oldname, plen);

下面操作后newname的值 为  E:/bin/update.zip.tmp;

_tcslen计算的是字符长度,就是有几个字符,

sizeof(TCHAR)算的是TCHAR这种的类型占几个字节

这样就明白啦。就是为啦算出要复制多少字节,如果项目改成多字节的字符集,上面也适用


微信号:kelicom QQ群:215861553 紧急求助须知
留下一点心意, :)
点击更换验证码
留言