strcpy有什么潜在风险?

jyecnu 2009-12-22 04:23:03
请教各位高手,进行strcpy操作时,有什么潜在风险?谢谢
...全文
674 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner8080 2010-07-09
  • 打赏
  • 举报
回复
学习了.
YIDAY 2010-03-31
  • 打赏
  • 举报
回复
谢谢, 学习
lbjfeng 2009-12-23
  • 打赏
  • 举报
回复
555555555555555555555

没有人说一下哈·~~
Totoro_zwj 2009-12-22
  • 打赏
  • 举报
回复
ding
lbjfeng 2009-12-22
  • 打赏
  • 举报
回复
拷贝自身,又会出现什么问题那?


不知道,请赐教一下啊,呵呵
pur_e 2009-12-22
  • 打赏
  • 举报
回复
从标准来说,strcpy、memcpy都是不需要处理重叠的,一般的文档中都写明了重叠情况下的结果是未定义的。
candeabc123 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 matrixcl 的回复:]
引用 1 楼 pur_e 的回复:
1、内存不够
2、没有结束符
3、拷贝自身


支持,前两个还容易避免,第三个不小心的话,出现问题很难查的
[/Quote]
第三个不明白 高手赐教
matrixcl 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pur_e 的回复:]
1、内存不够
2、没有结束符
3、拷贝自身
[/Quote]

支持,前两个还容易避免,第三个不小心的话,出现问题很难查的
ForestDB 2009-12-22
  • 打赏
  • 举报
回复
对C来说一个不小心都是风险。
赵4老师 2009-12-22
  • 打赏
  • 举报
回复
VC6调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
howlet2 2009-12-22
  • 打赏
  • 举报
回复
最大的风险就是在不十分熟悉它的情况下使用它
Flyh7t 2009-12-22
  • 打赏
  • 举报
回复
安全性上有个 溢出 也是属于内存不够
selooloo 2009-12-22
  • 打赏
  • 举报
回复
比如strcpy(x,y),风险就是字符串y比x大的话,就越界了;但strcpy并不做这方面的检查。
建议使用strncpy 功能一样,但更安全
do_fork 2009-12-22
  • 打赏
  • 举报
回复
strcpy本身没有什么风险,
风险来源于传递进去的两个参数,
一般就是考虑两种情况:
1. 地址非法访问
2. \0不表示结束,而是作为一个普通字符
z569362161 2009-12-22
  • 打赏
  • 举报
回复
strcpy本身没风险,

只有用时的错误.

1、内存不够
2、没有结束符
3、拷贝自身

这些都是应该注意的.
pur_e 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pur_e 的回复:]
1、内存不够
[/Quote]
指的是变量空间不够
stormyberg_qinzhi 2009-12-22
  • 打赏
  • 举报
回复
遇到\0就结束,只能拷贝字符串,如果流媒体,就会拷贝不完整,还是用memcpy好用。
pur_e 2009-12-22
  • 打赏
  • 举报
回复
1、内存不够
2、没有结束符
3、拷贝自身

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧