strcat_s 和 strncat_s 使用

由于原来的strcat和strncat可能会产生栈溢出

所以新版的vs会提醒你换成更安全的函数strcat_s 和 strncat_s

strcat_s:三个参数 errno_t strcat_s(char * restrict dest,rsize_t destsz,const char * restrict src);

举例:

char *a = "12345";

char *b = (char*)malloc(6);

memset(b, 0, 6);
strcat_s(b, strlen(a) + 1, a);

如果想连接部分就要用到下面这个:

strncat_s :四个参数 errno_t strncat_s(char * restrict dest,rsize_t destsz,const char * restrict src,rsize_t count);

count:最大复制数

destsz:目标缓冲区大小。

写在最后:提醒自己的是,很久没写c代码了,很多库函数都不记得怎么用了,突然被要求用纯c写代码,指针都忘了注意事项了。

需要提醒的是,在用指针的时候,不要乱赋值!!!!!!!!,尤其赋值的东西后面还再用,可能就会篡改原值,所以最好先动态申请空间。

你可能感兴趣的:(c,c语言)