私はダイナミックな配列で私の最初の本当のプログラムを書こうとしていますが、私は理解できない問題に遭遇しました。基本的には、私は動的配列を取って一時的な配列にコピーし、元の配列にもう1つのアドレスを追加して元の配列にすべてコピーし直そうとしています。元の配列には以前より1つ多くのアドレスがあります。これはintで試してみるときちんと動作しましたが、文字列がプログラムをクラッシュさせます。ここで私が苦しんでいるコードの例です:新しい文字列を割り当てるとクラッシュしますか?
void main()
{
int x = 3;
std::string *q;
q = new std::string[x];
q[0] = "1";
q[1] = "2";
q[2] = "3";
x++;
std::string *temp = q;
q = new std::string[x];
q = temp;
q[x-1] = "4";
for (int i = 0; i < 5; i++)
std::cout << q[i] << std::endl;
}
私は文字列の代わりにint型へのポインタにQと一時を作るとしたら、プログラムがうまく動作します。どんな助けでも大いに感謝されるでしょう、私はこれに1時間か2時間執着しています。
'q =新しいstd :: string [x];と' q = temp; '...' = '記号はどちらの場合も同じことを意味します –