永发信息网

sprintf,strcpy,memcpy使用上有什么要注意的地方

答案:2  悬赏:10  手机版
解决时间 2021-03-21 19:23
  • 提问者网友:美人性情
  • 2021-03-21 15:16
sprintf,strcpy,memcpy使用上有什么要注意的地方
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-03-21 16:52
strcpy是一个字符串拷贝的函数,它的函数原型为strcpy(char *dst, const char *src);
将src开始的一段字符串拷贝到dst开始的内存中去,结束的标志符号为'\0',由于拷贝的长度不是由我们自己控制的,所以这个字符串拷贝很容易出错。
memcpy,这是一个内存拷贝函数,它的函数原型为memcpy(void * dst,const void * src,size_t n); 将长度为len的一段内存,从src拷贝到dst中去,这个函数的长度可控。但是会有内存叠加的问题。
sprintf是格式化函数。将一段数据通过特定的格式,格式化到一个字符串缓冲区中去。sprintf格式化的函数的长度不可控,有可能格式化后的字符串会超出缓冲区的大小,造成溢出。
全部回答
  • 1楼网友:话散在刀尖上
  • 2021-03-21 17:25
trcpy是一个字符串拷贝的函数,它的函数原型为strcpy(char *dst, c*****t char *src); 将 src开始的一段字符串拷贝到dst开始的内存中去,结束的标志符号为'\0',由于拷贝的长度不是由我们自己控制的,所以这个字符串拷贝很容易出错。具 备字符串拷贝功能的函数有memcpy,这是一个内存拷贝函数,它的函数原型为memcpy(char *dst, c*****t char* src, unsigned int len); 将长度为len的一段内存,从src拷贝到dst中去,这个函数的长度可控。但是会有内存叠加的问题。 sprintf是格式化函数。将一段数据通过特定的格式,格式化到一个字符串缓冲区中去。sprintf格式化的函数的长度不可控,有可能格式化后的字符串会超出缓冲区的大小,造成溢出。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯