发布网友 发布时间:2022-04-23 02:40
共1个回答
热心网友 时间:2022-05-07 06:58
strcpy_s 是一个安全函数,功能和 strcpy一样,但是增加了长度判断。
例如:
char a[3]={"ab"};
char b[5]={"1234"};
strcpy(a,b);
这样拷贝明显 a 的空间是不够容纳下b的,明显有缓冲区溢出的问题,使用strcpy_s函数则会抛出一个异常。而使用strcpy函数的结果则未定,因为它错误地改变了程序中其他部分的内存的数据,可能不会抛出异常但导致程序数据错误,也可能由于非法内存访问抛出异常。
strcpy_s原型为:
errno_t strcpy_s( char *strDestination, size_t numberOfElements, const char *strSource );