私はいくつかのコーディングに取り組んでおり、セグメンテーション違反に遭遇しました。私はそれを機能させるために最善を尽くしましたが、失敗し続けました。今、私は助けを求めています。これは私のコードです:
#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) () ()