我正在尝试创建一个指向字符串的指针数组。我希望每个字符串只有3个字符。这是我到目前为止的代码:
string **ptr=new string *[100]; // An array of 100 pointers to strings
for (i=0;i<100; i++) // Assigning each pointer with a new string
{
ptr[i]=new string;
(*ptr[i])[3];
}
我遇到线路问题(* ptr [i])[3])。如果我要创建一个只有3个字符的srting而不是通过指针我会写:
string str[3];
如何使用指针分配3个字符?谢谢!
答案 0 :(得分:8)
std::vector<std::string> vec(100, " ");
这正是你正在寻找的,而不需要自己管理记忆。
string str[3];
这不会创建一个包含3个字符的字符串,而是一个包含3个字符串的数组。
答案 1 :(得分:-1)
(*ptr[i])[3];
只是访问字符串中的第四个字符,它不会调整它的大小。 std :: string DOES虽然提供了resize()
方法。
正如已经提到的,string str[3]
创建了一个包含三个字符串的数组,但我认为你并不想谈论它。
正如已经指出的那样,你可以使用带有size参数和fill char的字符串ctor,如下所示:
ptr[i]=new string( 3, ' ' );
当然你应该使用vector。