現在、私は、特にファイルを読み取り、二分探索木を構築し、それを出力する、かなり大規模な宿題を書いています。
すべての中で、二分探索木の値を順番に出力する再帰的なメソッドを書きました。
void output(node* n)
{
if(n->leftChild != NULL)
output(n->leftChild);
cout << n->keyAndValue << " || ";
outputString += n->keyAndValue << '|';
if(n->rightChild != NULL)
output(n->rightChild);
}
outputString += n->keyAndValue << '|';
それは問題ありませんが、後で使用できる char 配列 (文字列やその他の C++ の最新の機能を使用することは許可されていません) 内にすべての値を入れたいので、行に気付くでしょう。別の方法 (例: Main メソッド)。
Char-Array は次のように宣言されます。
char *outputString;
これは、私が試した方法の 1 つにすぎません。また、キーワードを使用して、const
定期的に配列を作成してみましたchar outputString[]
。お見せしたバージョンでは、後でプログラムの別のメソッドで次のコードを呼び出すと、エラーが発生します。
cout << outputString;
次のエラーが表示されます。
BST.exe の 0x008c2c2a で未処理の例外: 0xC00000005: アクセス違反の読み取り場所 0x5000000000。
+=
アクセス違反をトリガーすることなく、動的なchar配列を作成し、値を何度も使用して出力する方法についての手がかりはありますか? かなり基本的な質問をして申し訳ありませんが、C++ はまったく初めてです。
よろしくお願いいたします。
デニス