C++指针与字符串

为什么这段代码在运行时会失败?求解答
全部评论
char *p=new char[len+1]
点赞 回复 分享
发布于 2017-10-22 15:41
1楼正解,字符串保存在内存的只读数据区,指向该内存区的指针无法执行写操作。
点赞 回复 分享
发布于 2017-10-22 15:21
C++ 规定 string literal (字符串常量) 不能被修改,如果被修改,将是 undefined behaviour,具体楼主 可以参考这里的讨论,https://stackoverflow.com/questions/2589949/string-literals-where-do-they-go
点赞 回复 分享
发布于 2017-10-22 17:19
指针指向常量区,当然不能修改。应该声明字符数组然后初始化,再用指针指向。
点赞 回复 分享
发布于 2017-10-22 15:19
楼上说的当然没错,但问题是p好像只是一个空指针,并没有指向真正的内存空间。坐等楼下解释。
点赞 回复 分享
发布于 2017-10-22 15:14
P指向字符串常量 无法修改?
点赞 回复 分享
发布于 2017-10-22 15:11
常量区不可修改
点赞 回复 分享
发布于 2017-10-22 15:04

相关推荐

WhiteAlbum...:学院本2中大厂垂直实习➕acm比赛 秋招0面试
点赞 评论 收藏
分享
况世奇才:我七月投的Java,面试官说搞大数据的,挂个Java的吸引进来投简历的,已经offer评估了看看能不能泡出来吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务