C++、char*、段错误

标签 c++

我想从命令行分配字符串。但是我遇到了段错误。为什么?这是代码:

char* ans;  
cout << "enter string: ";  
cin >> *ans;

更新: 如果我不知道输入字符串的大小,如何提前分配内存, 它在 String 类中如何工作?

最佳答案

您有一个指针,但该指针并不指向任何为存储数据分配空间的地方。使用 std::string 代替:

std::string ans;
cout << "enter string: ";  
cin >> ans;

// ...

ans.c_str(); // returns const char *

关于C++、char*、段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8638175/

相关文章:

c++ - Boost 预处理器程序在从 Boost 1.55 更改为 1.57 后无法编译

c++ - 使用正在定义的类的静态类成员

c++ - 关于VS2010 C++中断点的问题

C++ 模板专门化以提供/添加不同的成员函数

c++ - 找到下一个回文

c++ - 损坏的顶点和片段着色器

c++ - 使用 cstdio 就地编辑文件?

c++ - 使用 Armadillo C++ 的余弦相似度给出了负面结果

c++ - 运算符重载

c++ - 如何在C++中指向全局函数中的成员函数?