c++ - 在 C++ 中创建一个 char 指针向量
问题描述
我必须制作一个存储 char 指针的向量。每个指针应仅指向单个字符,例如“a”或“b”。我没有得到任何编译错误,但是当我运行我的程序时,它崩溃了。我不能使用 std::string 或其任何函数,它们只能是字符。
std::vector<char*> myVector;
myVector.reserve(10);
myVector.at(0) = new char['a'];
为什么程序会崩溃?我不应该能够在内存中创建新的字符指针吗?
解决方案
当你没有在向量内推任何东西时,你应该使用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;
}
推荐阅读
- module - Ur/Web 中的模块和类型类
- javascript - 如何在 Google Apps 脚本中获取范围然后设置值
- mysql - 父表中列的唯一约束
- apache-spark - Spark >2 - 连接操作期间的自定义分区键
- sql - 如何在 Oracle 中使用 for 循环进行插入?
- reactjs - 样式组件如何影响性能?
- java - JSON毫秒日期到java日期
- python - 遍历目录/文件夹中的文件,过滤它们,然后逐行读取它们的信息
- javascript - Webpack 在其他组件中包含 jQuery
- javascript - 使用 Firestore 查询发送值