C++调试出现的问题,弹框。

2025-02-23 21:17:32
推荐回答(1个)
回答1:

编译的过程只做了词法分析、语法分析,你这句代码从语法上来讲是没有问题的。

s[k]是string类型的,调用s[k].at(0)自然是正确的。

k只有在运行时才会赋值,运行时读取s[k]之后,发现s[k]是空的,此时调用at(0)即会出现访问越界,因为0这个位置上是空的,读取了非法内存。
这种就是运行时错误,编译器是检查不出来的