打印

函数参数问题

[复制链接]
1010|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
txcy|  楼主 | 2013-6-27 18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不是说strcpy(char* dest, const char *src)函数参数
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串
在VC下运行这两个为什么通过了啊?
char dest1[4]="aaa";
char src1[6]="bbbbb";
strcpy(dest1,src1);
cout<<dest1<<endl;
输出bbbbb

char dest2[4]="aaa";
char* src2="bbbbb";
strcpy(dest2,src2);
cout<<dest2<<endl;
输出bbbbb

//而这两个居然崩了
char* dest3="aaaaa";
char  src3[4]="bbb";
strcpy(dest3,src3);
cout<<dest3<<endl;

char* dest4="aaaaa";
char* src4="bbb";
strcpy(dest4,src4);
cout<<dest4<<endl;
求指点!!!

相关帖子

沙发
火箭球迷| | 2013-6-27 18:43 | 只看该作者
char* dest3="aaaaa";
char* dest4="aaaaa";

都是VC惹的祸。

"abcdef"这一类的字符串字面量只能赋值给char const *类型指针,不能赋值给char *类型。
如果你把dest3和dest4定义为char const * ,编译器就会阻止你调用strcpy。

没出问题那两个,只是问题没有表现出来。

使用特权

评论回复
板凳
baidudz| | 2013-6-27 19:15 | 只看该作者
其实电脑开机后物理内存的每个字节都是可读写的,区别仅在于操作系统内存管理模块在你读写时是否能发现并是否采取相应动作而已。

使用特权

评论回复
地板
pkat| | 2013-6-27 19:28 | 只看该作者
dest3跟dest4指向的是字符串常量。

使用特权

评论回复
5
gxgclg| | 2013-6-28 23:30 | 只看该作者
没看太明白

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝