首页 > 解决方案 > 在 C++ 中创建一个 char 指针向量

问题描述

我必须制作一个存储 char 指针的向量。每个指针应仅指向单个字符,例如“a”或“b”。我没有得到任何编译错误,但是当我运行我的程序时,它崩溃了。我不能使用 std::string 或其任何函数,它们只能是字符。

std::vector<char*> myVector;
myVector.reserve(10);
myVector.at(0) = new char['a'];

为什么程序会崩溃?我不应该能够在内存中创建新的字符指针吗?

标签: c++pointersvectorchar

解决方案


当你没有在向量内推任何东西时,你应该使用push_back方法vector而不是使用。at此外,您应该使用new char('a')而不是使用括号,这有其他含义。看看这个运行良好的最小代码:

#include <iostream>
#include <vector>

int main()
{
    std::vector<char*> myVector;
    myVector.push_back(new char('a'));
    std::cout << *myVector[0] << std::endl;
}

推荐阅读