我一直在进行一些编码,但遇到了分段错误。我已经尽力让它发挥作用,但我一直失败。现在我正在寻求帮助。这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string symbols = "ABCDEFGHIJKLMNOPRSTUVYZ_";
int sim, a = 0;
sim = symbols.size();
string temp[sim];
while(sim > 0)
{
sim--;
temp[sim] = symbols.substr(sim, 1);
cout << temp[sim] << endl;
}
}
好吧,这有点用,但是如果我做一些更改,它就会崩溃。
我改变:
while(sim > 0)
{
sim--;
temp[sim] = symbols.substr(sim, 1);
cout << temp[sim] << endl;
}
对此:
while(a < sim)
{
a++;
temp[a] = symbols.substr(a, 1);
cout << temp[a] << endl;
}
我得到了 SIGFAULT,我真的不明白这是错误的。我使用了调试器,它并没有真正显示它在哪一行崩溃,它只是显示:
程序收到信号 SIGSEGV,分段错误。
在__gnu_cxx::__exchange_and_add(int volatile *, int) () ()