c++用指针指向字符串常量会自动释放吗?

如在一个函数中voidf(){char*a="temp";constchar*b="temp";charc[]="array";//这个数组的元素会在函数结束时销毁}请问... 如在一个函数中
void f()
{
char* a = "temp";
const char* b = "temp";
char c[] = "array"; //这个数组的元素会在函数结束时销毁
}
请问a,b两个指针所指向的字符串会在函数结束后自动销毁并释放内存吗?
展开
 我来答
icelbja
2015-05-30 · TA获得超过138个赞
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:152万
展开全部
a b 所指向的字符串在函数结束时是不会销毁的,因为字符常量是存在静态存储区,但是a b本身会销毁。你可以测试下 返回a或者b,再打印a或者b的指向。结果是可以打印出来的。
c 是指向一个局部数组,函数结束c的指向也就是数组是要销毁的。
更多追问追答
追问
测试过,确实如此。那么这些字符串常量在什么时候销毁呢,可以用free之类的函数手动销毁吗?
追答
静态存储器区的资源不需要你释放,程序退出时自动销毁,不可以用free,free 是释放堆内存,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式