#include <iostream>
using namespace std;
int main() {
char * c;
cin >> c;
return 0;
}
我正在尝试从长度未知的用户那里获取 C 字符串行。我知道如果我声明c
为char c[80]
而不是char * c
then 它不会导致段错误。
但是,如果我不想将用户限制为80 - 1
字符怎么办?我可以使用一个非常大的数字,但这只会浪费空间。
我也很想知道为什么上述程序会导致段错误。据我了解,cin
提取运算符 ( >>
) 知道NULL
终止 C 字符串。究竟是什么导致了这个问题?