strncpy问题

[复制链接]
 楼主| sinadz 发表于 2012-7-20 22:25 | 显示全部楼层 |阅读模式
NCP, ST, sd
char a[20]="aaaaaa";
char b[]="asd";
strncpy(a,b,6);
cout<<a;

请问为什么结果是asdasd,而不是出错。。。。。
秋天落叶 发表于 2012-7-20 23:10 | 显示全部楼层
栈的生长方向是从大到小,如果copy-write 的时候,会影响buffer中的内容,产生了覆盖
pkat 发表于 2012-7-20 23:14 | 显示全部楼层
无论如何,a当中结果都应该是asd\0aa\0\0\0\0...
所以cout << a;结果应该是asd
pattywu 发表于 2012-7-22 19:25 | 显示全部楼层
在执行复制之前,你看一下a[]、b[]所在的内存块的数据,就清楚了。
    开发软件,不能想当然。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

304

主题

2313

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部