C++ 字符串和指针

标签 c++ string pointers

我正在学习 C++,目前我正在使用字符串和指针。

我正在关注一本练习册,针对其中一个问题,我创建了以下内容:

#include <iostream>
#include <string>

using namespace std;

int main(void){
    string * firstName=nullptr;
    string * lastName=nullptr;
    string * displayName=nullptr;

    cout << "Enter your first name: " << endl;
    getline(cin,*firstName);

    cout << "Enter your last name: " << endl;
    getline(cin,*lastName);

    displayName=new string;
    *displayName= *lastName + ", " + *firstName;

    cout << "Here's the information in a single string: " << displayName;
    cin.get();
    return 0;
}

为了使用更多的指针,我尝试将它与字符串混合在一起,并因此使解决方案更加复杂。当我运行它时,我得到一个“未处理的异常:访问冲突读取位置 xxxxxxxxx”。

是否有人可以通过仍然使用指针和字符串而不是 char 数组来提出解决方案(我已经知道该怎么做)?

最佳答案

这是因为您在使用对象之前没有分配您的对象:

string * firstName = new string();
//...
delete firstName;

值得补充的是,在这种情况下使用指针毫无意义:标准 C++ 库中的字符串对象从堆中为字符串分配数据;无论如何,字符串通常不过是一对指针。

关于C++ 字符串和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554812/

相关文章:

c++ - 如何将指针传递给c/cpp中的函数?

java - 有没有办法在 Mac 中以 headless 方式运行 GUI 应用程序?

c++ - 用 OpenGL 绘制彩色网格?

c++ - 在不知道最后一个元素位置的情况下向后比较两个数组

c++ - 将字符串解析为 C++ 中的一行代码

C++:创建启动间相关仿函数列表

c++ - 循环条件下 rand() 的行为

C++ 将数据从 std::string 复制到 std::wstring

Python 3 - 基于字符串的字典搜索列表

c++ - 为什么我不能将二维数组作为指针传递给指针,但可以将一维数组作为指针传递