目前我正在写一个相当广泛的家庭作业——除其他外——读取一个文件,构建一个二叉搜索树并输出它。
在其中的某个地方,我编写了一个递归方法来按顺序输出二叉搜索树的值。
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;
这只是我尝试过的方法之一。我还尝试使用const
关键字并定期构建一个数组char outputString[]
。使用我向您展示的版本,当稍后在程序中以不同的方法调用以下代码时,我遇到了错误:
cout << outputString;
我收到以下错误:
BST.exe 中 0x008c2c2a 处的未处理异常:0xC00000005:访问冲突读取位置 0x5000000000。
关于如何构建动态 char 数组、多次使用+=
和输出它而不触发访问冲突的任何线索?很抱歉问了一个相当基本的问题,但我对 C++ 完全陌生。
谢谢并恭祝安康,
丹尼斯