对 strcpy_s 若干测试

简介: 今天发现如果strcpy这函数,目标buffer太小,会有意想不到的崩溃。而且不容易调试。以后尽量要用strcpy_s了。 strcpy_s是strcpy的更安全的版本 1.当目标字符串参数是一个字符串数组时可以不要numberOfElements这个参数,例如: char sz...

今天发现如果strcpy这函数,目标buffer太小,会有意想不到的崩溃。而且不容易调试。以后尽量要用strcpy_s了。

strcpy_s是strcpy的更安全的版本

1.当目标字符串参数是一个字符串数组时可以不要numberOfElements这个参数,例如:

    char  szBuf[50];
    strcpy_s(szBuf,50,"dfassfasfasfsf");
strcpy_s(szBuf,"dfassfasfasfsf"); //也正确

如果目标字符串参数是一个字符指针,则必须要numberOfElements这个参数

    char * szBuf = new char[50];
    strcpy_s(szBuf,"dfassfasfasfsf"); // error C2660: “strcpy_s”: 函数不接受 2 个参数
    strcpy_s(szBuf,50,"adsfsadfsf"); //正确

 

相关文章
|
5月前
atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)
atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)
|
6月前
|
程序员 C语言
【C语言】函数----函数的分类、库函数详解(strcpy、memset)、自定义函数的实现(找较大值、交换两个数)
【C语言】函数----函数的分类、库函数详解(strcpy、memset)、自定义函数的实现(找较大值、交换两个数)
39 0
关于在vs中一劳永逸解决使用scanf, strcpy等函数的方法
关于在vs中一劳永逸解决使用scanf, strcpy等函数的方法
三种方法模拟实现库函数strlen,加深对strlen的理解
三种方法模拟实现库函数strlen,加深对strlen的理解
|
存储 Serverless
strlen函数解析与模拟实现
strlen函数解析与模拟实现
strlen函数解析与模拟实现
模拟实现库函数strcat--将源字符串的副本追加到目标字符串(理解内存重叠问题)
模拟实现库函数strcat--将源字符串的副本追加到目标字符串(理解内存重叠问题)
模拟实现库函数strcpy,对strcpy的进一步理解(深刻理解重叠问题,防止内存与源重叠)
模拟实现库函数strcpy,对strcpy的进一步理解(深刻理解重叠问题,防止内存与源重叠)
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
模拟实现库函数memcpy--复制内存块。详细理解内存重叠及精准复制问题
142 0
|
C语言
由浅入深C系列四:memset/memcpy源码分析,为什么这二个函数的目的字符串在前面,源字符串在后面?
memset/memcpy源码分析,为什么这二个函数的目的字符串在前面,源字符串在后面?