c++ - 输出字符串指针数组

标签 c++ string dynamic-arrays

我很难弄清楚我到底做错了什么,而且还没有找到任何有相同问题的帖子。我正在使用一个动态字符串数组来保存一个二叉树,根在 [0],第一行子节点,从左到右,在 [1] 和 [2],等等。虽然我还没有调试输出格式然而,我更关心的是为什么该特定行会导致我的程序崩溃。

我认为这是一个指针取消引用问题,但是 outStream << &contestList[i]如我所料打印地址,outStream << *contestList[i]像我期望的那样抛出错误。

//3 lines are from other functions/files
typedef string elementType;
typedef elementType* elementTypePtr;
elementTypePtr contestList = new elementType[arraySize];

void BinTreeTourneyArray::printDownward(ostream &outStream)
{
    int row = 1;

    for (int i = 0; i < getArraySize(); i++)
    {

        outStream << contestList[i]; //this is crashing the program

        if (isPowerOfTwo(i))
        {
            outStream << endl;
            row++;
        }
        else
        {
            outStream << ":";
        }
    }
}

arraySize 是私有(private)成员 arraySize = ((2 * contestants) - 1)其中 contestants是参加我的比赛的参赛者人数。树中的每一轮或“行”都与锦标赛分组同义。如果有 n 个参赛者,则树中需要 2n-1 个节点。问题不在于此功能。

getArraySize() { return arraySize; }

最佳答案

原来 elementTypePtr contestList = new elementType[arraySize]; 是问题所在。 contestList 是该类的私有(private)成员,然后我将此行放入一个函数中,声明一个同名的局部变量,该变量在函数结束后消失。没什么大不了的,除了我在打印功能中需要它...糟糕。

关于c++ - 输出字符串指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47623347/

相关文章:

c - 在 C 中,如何动态地将命令行参数添加到字符串数组?

c++函数在之后立即调用析构函数

c++ - 编译时函数求值,不完整类型

c++ - 涉及非常快速地跨网络发送数据的 C/C++ 技术

python - python中重复使用append的速度

c - 动态数组在通过引用传递时交换列和行

c++ - 我如何在 std::vector 中存储没有复制构造函数的类?

r - 使用 grep 和正则表达式进行部分字符串匹配

c++ - 反转没有反转函数的字符串 C++

Python 字符串和整数连接