我想从命令行分配字符串。但是我遇到了段错误。为什么?这是代码:
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/