中易网

如何避免使用memcpy函数出现半个汉字

答案:2  悬赏:0  
解决时间 2021-02-27 09:33
如何避免使用memcpy函数出现半个汉字
最佳答案
你确定要用memcpy操作汉字?
memcpy函数是用来操作ASCII字符的,汉字不在ASCII范围内。另外不同的编译器给一个汉字的内存空间是不一样的,比如我的编译环境,我定义一个char *s = "你好",占用5个字节,若使用memcpy(dest,s,2)就会出现乱码,只有当memcpy的第三个参数大于等于5时才会拷贝成功。
全部回答
该例子说明几个问题 1. mem开头的函数基本上都是对内存操作的, 它们不管内存里放的是什么数据,只要给出长度,它们就操作。 不像strcpy、strcmp等函数一定以'\0'结尾,而且是字符。 mem可以操作可见字符、不可见字符、控制字符等,任意数据都可以。 2. memcpy是内存复制函数 原型: void * memcpy(void *dest, void const *src, unsigned int length); 功能:从src的起始位置复制length个字节到dst的内存起始位置。你可以用这种 方法复制任何类型的值,第3个参数指定复制值的长度(以字节计)。 如果src和dst以任何形式出现了重叠,它的结果是未定义的。 3. memset函数 原型:void * memset(void *a, int val, unsigned int length); 功能:把从a开始的length个字节都设置为值val。 例子:memset(buffer, 0, size);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国诺贝尔物理和化学奖获得者
德源堂药房地址在哪,我要去那里办事
纯棉口罩新买来能马上用吗
上海投靠居住证办理好了,有什么方面的用途?
4块相同的长方形地砖和一块边长为60cm的正方
襄阳中和机电技术有限公司地址在哪,我要去那
无缝钢管哪个厂家生产的质量有保障?
湘大测绘专业有多强
为什么不要让婴幼儿玩玻璃球硬币扣子等等?
我的显卡是技嘉 GTX750Ti GV-N75TOC-2GI 怎么
连云港笃祥化工有限公司在什么地方啊,我要过
请问大家一个问题,手机内存卡,1GB等于多少
不是说二层交换机只能配置一个VLANIF地址吗
哪怕是假惺惺的一句嘘寒问暖也会让人感到
宜兴品牌笔记本专卖店在哪里
推荐资讯
求日常萌系动漫
宜宾驾考科三在通过学校区域踩刹车后可以加速
刘千河乡在哪里啊,我有事要去这个地方
连锁经营心经说什么话比较有力度
不懂名取对夏目到底是什么感情
狗肉能用葫萝卜沌火锅吗?
中东剑杆纺配这个地址在什么地方,我要处理点
美肤宝 白皙 嘉年华 本草堂 韩后 名门闺秀,效
coolzippo请进,真zippo是不是侧面是不是都有
升嘉地板怎么去啊,有知道地址的么
常州市武进华裕注塑机械厂地址在哪,我要去那
(8-n)(7-n)n=60,n=?q求解,具体一点
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?