-3

我正在尝试创建一个指向字符串的指针数组。我希望每个字符串只有 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 个字符?谢谢!

4

2 回答 2

8
std::vector<std::string> vec(100, "   ");

这正是您正在寻找的,而无需自己管理内存。

string str[3];

这不会创建一个包含 3 个字符的字符串,而是创建一个包含 3 个字符串的数组。

于 2013-10-31T15:26:51.527 回答
-1

(*ptr[i])[3];只是访问字符串中的第四个字符,它不会调整它的大小。std::string 确实提供了一种resize()方法。

如前所述,string str[3]创建一个包含三个字符串的数组,但我认为您不是在谈论这个。

正如已经指出的,您可以使用带有大小参数和填充字符的字符串 ctor,如下所示:

ptr[i]=new string( 3, ' ' );

当然你应该使用向量。

于 2013-10-31T15:27:31.983 回答