memcpy传参数时指定大小
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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这种的类型占几个字节
这样就明白啦。就是为啦算出要复制多少字节,如果项目改成多字节的字符集,上面也适用