c++ - 声明指向字符串的动态指针数组的问题
问题描述
在在线执行练习作业时,我遇到了一个我无法解决的问题。
用户必须输入一个数字(他将要输入的句子数),然后逐个输入要存储为字符串的句子(顺便说一句,必须声明一个动态的指针数组)。但是,由于句子的数量不是先验可推导的,我知道指针数组的大小实际上是句子的数量,但我不知道如何声明一个指向 strings 的动态指针数组。
使用我事先已经知道的东西,我想出了如何做同样的事情,但使用字符数组,而不是字符串数组。声明指向动态字符数组的指针的动态数组的行如下所示:
char **ptr=new char*[n] {};
因此,据我了解,这会创建一个指向ptr
动态指针数组的指针,每个指针的元素都指向一个字符数组。我现在想做类似的事情,结果应该ptr
是指向动态指针数组的指针,其中每个元素都指向一个字符串。
任何人都可以帮忙吗?我会很感激的!
解决方案
您可以完全避免使用指针并使用
std::vector<std::string> input;
Astd::array
需要在编译时知道大小,而您在运行时了解这一点。向量像数组一样工作,但可以push_back
在运行时编辑项目。
您可以声明指向某些字符串的指针,n
一旦知道就可以使用:
std::string * pInputs = new std::string[n];
但使用向量更容易。每个都pInput
将是一个字符串,与std::vector
版本一样。
推荐阅读
- java - E/REALM_JNI: jni: ThrowingException 5, mmap() failed: Out of memory size: 369098752
- php - 图片上传失败(图片转换 Laravel)
- excel - 在特定 Windows 显示比例下调整大小时,InkPicture 呈现不正确
- c# - 使用 Moq 和接口进行单元测试
- php - 是否可以在 og 标签中为网站的不同页面添加自定义预览图像?
- java - 在 PlantUML 中呈现非 ASCII 字符所需的配置
- vba - 字代码 4605 中的错误 VBA“无法使用 SetWidth,因为对象引用了表格行的末尾。”
- python - TensorFlow 应用程序不断增加内存使用量
- apache-kafka - Kafka - 时间戳顺序
- android-studio-3.3 - Android 支持存储库管理器