码迷,mamicode.com
首页 > 编程语言 > 详细

c++面试题总结

时间:2018-03-08 19:34:34      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:highlight   找不到   post   string   div   cout   输出   c++面试题   字符串   

1.

char *pname=new char[10];
pname="asdzxc"; cout<<pname; delete pname;

 该程序运行时会崩溃,原因时我们自己在堆上new出了一块空间后,马上又让该指针指向了字符常量区,之前分配的空间就会丢掉,此时虽然可以正常输出,但是在delete的时候,由于找不到我们之前开辟的那块空间的位置又进行了释放内存的操作,自然会崩溃。

所以字符串的赋值一定不能用“=”,要用strcpy(),初始化可以用“=”,如:(在c++中用string类可直接赋值)

char *p="asdzxc";//是正确的

 下面这种写法同理也是错误的。

char pname[]="asdzxc";//栈
pname="aaa";

  

c++面试题总结

标签:highlight   找不到   post   string   div   cout   输出   c++面试题   字符串   

原文地址:https://www.cnblogs.com/curo0119/p/8530300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!