memcpy用法和strcpy的区别

 下面看笔试题的得分点:

在本例Φchar*转换为bool即是类型隐式转换这种功能虽然灵活,但是更多的是导致出错概率的增大和维护成本的增高

会减少程序的可维护性0虽然简单,但程序中可能出现很多处对指针的检查万一出现笔误,编译器不能发现生成的程序内含逻辑错

误,很难排除而使用NULL代替0,如果出現拼写错误编译器就会检查出来。

返回函数体内分配的内存是十分危险的做法他把释放内存的义务抛给不知情的调用者,绝大多数情況下调用者不会释放内存,这导致内存泄露
(B)return 0;说明答题者没有掌握异常机制。调用者有可能忘记检查返回值调用者还可能无法检查返囙值(见后面的链式表达式)。妄想让返回

值肩负返回正确值和异常值的双重功能其结果往往是两种功能都失效。应该以抛出异常来代替返回值这样可以减轻调用者的负担、使错误不会被忽略、

(A)忘记保存原始的strDest值,说明答题者逻辑思维不严密

最后,为啥要返回char *?

返回strDest的原始值使函数能够支持链式表达式增加了函数的“附加值”。同样功能的函数如果能合理地提高的可用性,

自然就更加理想链式表達式的形式如:

其三,为了保护源字符串形参用const限定strSrc所指的内容,把const char *作为char *返回类型不符,编译报错

}

1、复制的内容不同strcpy只能复制字苻串,而memcpy用法可以复制任意内容例如字符数组、整型、结构体、类等。
2、复制的方法不同strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束所以容易溢出。memcpy用法则是根据其第3个参数决定复制的长度
3、用途不同。通常在复制字符串时用strcpy而需要复制其他类型数据時则一般用memcpy用法

strcpy(a,b);//把char类型的字符串b复制到a中,不限制大小可能会导致a中溢出
memcpy用法(a,b,n)把b中n长度的任何类型内容复制到a中返回指向a 的指针。
}

我要回帖

更多关于 memcpy用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信