[基础问题]关于memcpy的问题

bxfq 2010-05-20 01:06:20
void main()
{
char dest[10];
char src[]="0123456789";
memcpy(dest,src,sizeof(src));
}
为什么memcpy拷贝不会溢出了,因为sizoef(src)的结果为11,memcpy会溢出的啊。

测试平台linux 编译器 gcc
...全文
128 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SH19871122 2010-05-20
  • 打赏
  • 举报
回复
其实是溢出了,只是你打印的时候没问题,或者说不会出现问题,可能覆盖了别人的内存块,也可能没
lylm 2010-05-20
  • 打赏
  • 举报
回复
编译器不管这个,它怎么知道你是不是就要这样做?
匚匚 2010-05-20
  • 打赏
  • 举报
回复
赞同
[Quote=引用 3 楼 lthyxy 的回复:]
越界其实编译器一般不报错的吧,是程序员自己要注意的
[/Quote]
十八道胡同 2010-05-20
  • 打赏
  • 举报
回复
不会溢出?您怎么看出来的?
liutengfeigo 2010-05-20
  • 打赏
  • 举报
回复
越界其实编译器一般不报错的吧,是程序员自己要注意的
wukong000 2010-05-20
  • 打赏
  • 举报
回复
溢出了啊、、你凭什么说它不会溢出?
pengzhixi 2010-05-20
  • 打赏
  • 举报
回复
越界不代表一定要报错吧,这个应该是你自己控制的吧。

70,021

社区成员

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

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