memcpy传参数时指定大小

来源:赵克立博客 分类: Win32 标签:C/C++发布时间:2018-03-27 18:05:13最后更新:2018-03-28 11:21:14浏览:1589
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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 紧急求助须知
Win32/PHP/JS/Android/Python