返回信息流char temp[]="EFTUV";
string str=(char*)temp[4];
cout<<str;
为什么一用VS运行到这一句话就会立马说什么访问冲突,需要中断啊?
而且string str=temp[4];为什么连编译都过不了?
谢谢各位热心的byr,已经解决了~--
这是一条镜像帖。来源:北邮人论坛 / cpp / #75356同步于 2013/11/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
急,求教一个可能很简单的数组问题
guoxuyang11
2013/11/25镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
不知道为何要把tem[4]强制转换成char*呢,如果需要将从tem[4]开始往后的字符串赋值给str,用str = &tem[4]应该就可以了吧?
不是,只是想把数组中的哪一个元素转成char,为什么就会出现这样的错呢?(那个是在网上百度的。。。)
【 在 liaolvkd 的大作中提到: 】
: 不知道为何要把tem[4]强制转换成char*呢,如果需要将从tem[4]开始往后的字符串赋值给str,用str = &tem[4]应该就可以了吧?
【 在 guoxuyang11 的大作中提到: 】
: char temp[]="EFTUV";
: string str=(char*)temp[4];
: cout<<str;
: ...................
你的概念没弄清,temp是一个字符指针常量,temp[4]是一个字符,str是一个字符串,将temp[4]强制转换为指针,那么该指针的值就是‘V‘的ansci编码,对这个地址访问是不合法的,有可能能访问,有可能不能,但是返回的数据是垃圾数据,至于将str=temp[4],字符串怎么能通过字符赋值,明显是不对的。