【发布时间】:2012-02-15 10:42:18
【问题描述】:
我对一个非常基本的问题很了解。我想在 C++ 中动态创建一个字符串数组。
我该怎么做?
这是我的尝试:
#include <iostream>
#include <string>
int main(){
unsigned int wordsCollection = 6;
unsigned int length = 6;
std::string *collection = new std::string[wordsCollection];
for(unsigned int i = 0; i < wordsCollection; ++i){
std::cin>>wordsCollection[i];
}
return 0;
}
但它给出了以下错误
error C2109: subscript requires array or pointer type
什么是错误?
如果我从用户那里获取输入数字,我可以从std::cin 静态创建一个该大小的数组吗?
【问题讨论】:
-
以后请选择您的代码块并使用
{}按钮;这将使您的代码在问题中正确显示。 -
您输入了
wordsCollection[i]而不是collection[i]。您不能使用动态(例如通过std::cin)获得的大小来创建静态数组。此外,由于您从未释放数组,因此数组正在泄漏。