int main()
{
char *c;
cin>>c;
cout<return 0;
}
程序会崩溃,但是把
char *c;
改成 char *c = new char[1];
就可以运行,求大神给解释一下。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可以new,也可以定义一个数组缓冲区。错就错在你的指针的初始化上面。可以在定义时给它直接赋值,比如:char* p = "《加州旅馆》"。这样系统就会自动为其分配空间,也可以用new,自定义分配空间,然后在输入的时候为其赋值,这样还有一个问题,就是在return 之前,得做释放,也就是delete[],所以建议用自定义数组缓冲区。