项目场景:
在c++的学习和使用中,常常用到数组、指针等,本人在解决将字符串输入转化为数组时遇到的报错:引发了异常: 读取访问权限冲突。
—![在这里插入图片描述](https://img-blog.csdnimg.cn/efe1409ee11e47b79cecdb87fb027b77.png)
问题来源
![在这里插入图片描述](https://img-blog.csdnimg.cn/a1cbc715444f4b0681eadea6d0648825.png)
报错的本质为内存访问问题:
表现有:
- 数组越界
- 对于分配到的空间,未进行预处理
- 空指针,指针越界(本文正是这个问题)
解决方式:
- 检查是否越界
- 对于申请到的空间,是否给了默认值
- 指针是否越界
原因分析:
本人使用cin.getline()函数来实现对输出字符串的存储,但是cin.getline()函数是通过换行符来确定行尾,但是不保存换行符。
解决方案:
在字符串后再手动添加个换行符,或不用换行符判断结尾。