如何初始化字符串指针
how to initialize string pointer?
我想将静态值存储在字符串指针中,可行吗?
如果我喜欢
string *array = {"value"};
发生错误
error: cannot convert 'const char*' to 'std::string*' in initialization
然后你需要写
string *array = new string("value");
虽然你最好使用
string array = "value";
因为这是使用它的预期方式。 否则,您需要跟踪内存。
std::string
指针必须指向std::string
对象。它实际指向的内容取决于您的用例。例如:
std::string s("value"); // initialize a string
std::string* p = &s; // p points to s
在上面的示例中,p
指向具有自动存储持续时间的本地string
。当它被摧毁时,任何指向它的东西都会指向垃圾。
您还可以使指针指向动态分配的字符串,在这种情况下,您负责在完成后释放资源:
std::string* p = new std::string("value"); // p points to dynamically allocated string
// ....
delete p; // release resources when done
建议您使用智能指针而不是原始指针来动态分配的对象。
由于array
是一个string
数组,你可以试试这个:
int main()
{
string *array = new string[1];
array[1] = "value";
return 0;
}
您可以将文本显式转换为字符串:
std::string array[] = {std::string("value")};
请注意,您必须将其定义为数组,而不是指针。当然,如果你有多个元素,数组大多是有意义的,比如:
string array[] = {string("value1"), string("value2"), string("etc")};
相关文章:
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 使用指针初始化 char 数组或字符串 C++
- 指针保留字符串
- Visual c ++,使用字符串引用/指针调用 dll 函数
- strcpy 在类中无法使用字符串指针
- C++为 void 指针分配一个字符串
- OpenGL 统一名称指针作为字符串
- 如何将字符串指针数组转换为字符串类型的智能指针向量?
- 转换指针引用的字符串
- 未分配释放C++(C 字符串)指针
- 为什么 C 样式字符串的工作空指针检查不?
- 为什么多维数组中的空字符串文本衰减为空指针?
- 使用终止程序的指针在数组中输入字符串
- 将指针作为缓冲区传递到第一个字符串元素
- 指针 - 字符串C
- C++:更改指针字符串的值
- 使用带字符指针字符串的基于范围的For循环
- 转换/解析指针字符串和双精度
- 有问题分配字符串指针字符串值