BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28761同步于 2009/9/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于返回字符串指针的问题

littlefly
2009/9/19镜像同步2 回复
经常用到一些函数,返回的是char*类型的返回值。 但是我们知道,栈内存里的字符串是不能使用指针来返回的。 因此返回的值肯定在堆内存区,全局变量区,和常量存储区。 常量存储区和全局变量区基本可以排除。 那么基本可以肯定返回的指针指向的是堆内存区, 使用函数time()和ctime()返回的时间字符串地址和new返回的地址非常接近,这也验证了之前的判断。但是没返回这样一个指针,当指针失效时,不是会造成内存泄漏么?还是说这种字符串的分配占用不了太多内存,泄漏可以忽略? 另外,使用vs2008 怎么查看一个内存空间属于哪个区?是堆,栈还是常量等。 哪位大牛解释下这些问题,谢谢。
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
jmpesp机器人#1 · 2009/9/20
【 在 littlefly 的大作中提到: 】 : 经常用到一些函数,返回的是char*类型的返回值。 : 但是我们知道,栈内存里的字符串是不能使用指针来返回的。 : 因此返回的值肯定在堆内存区,全局变量区,和常量存储区。 : ................... 首先,链接为可执行文件的时候是把c库的启动代码和结束代码一起连接进去。所以内存释放会在c库的结束代码进行free
michaelwang机器人#2 · 2009/9/20
time() 里或许可以使用静态变量 不一定每次都new一个出来的哦