都什么类型的变量需要释放?新手勿笑

kkun_3yue3 2008-10-06 04:31:19
都什么类型的变量需要释放?新手勿笑
char a = 'A';
这样的变量用不用释放内存?
...全文
269 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingfoxa 2008-10-06
  • 打赏
  • 举报
回复
动态创建的,如new和malloc,其他就用你管了
全局变量少用了
wudeshou82666 2008-10-06
  • 打赏
  • 举报
回复
按值返回就是在函数结束的时候创建临时变量来保存你要返回的值....
返回地址则需要注意你返回的地址是否存在,是否在函数结束以后被收回了.
kkun_3yue3 2008-10-06
  • 打赏
  • 举报
回复
3Q各位
wudeshou82666 2008-10-06
  • 打赏
  • 举报
回复
一个由C/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其
操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的
全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另
一块区域。 - 程序结束后由系统释放。
4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
lunarfan 2008-10-06
  • 打赏
  • 举报
回复
堆上创建的需要你自已动手来释放。
kkun_3yue3 2008-10-06
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wudeshou82666 的回复:]

至于返回变量则看你如何调用...
看你返回的是变量的地址呢还是变量这个对象.
[/Quote]

有区别吗?返回值,地址,变量本身
wudeshou82666 2008-10-06
  • 打赏
  • 举报
回复

至于返回变量则看你如何调用...
看你返回的是变量的地址呢还是变量这个对象.
dic_walter 2008-10-06
  • 打赏
  • 举报
回复
楼主学JAVA吧,什么都不用释放,只管用就是了!
kkun_3yue3 2008-10-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wudeshou82666 的回复:]
函数存储在代码段

[/Quote]

不是太理解的说
wudeshou82666 2008-10-06
  • 打赏
  • 举报
回复
函数存储在代码段
kkun_3yue3 2008-10-06
  • 打赏
  • 举报
回复
楼上各位大侠,能否给些资料或解释下,

定义一个变量就是在内存中开辟一个存储空间,这个俺理解了,
可是那些个函数存储在哪里?
又是如何执行计算的呢?我的疑问是,所有数据都是存储内存中的,都是10101010,可是函数是如何存储的呢?又如何接受返回变量?
写法是知道的,如
int test(){return 0;}
jia_xiaoxin 2008-10-06
  • 打赏
  • 举报
回复
这属于自动变量,过程或系统退出后会自动释放
只有通过new 或 malloc在堆上分配的内存才需要释放。
zhyinty 2008-10-06
  • 打赏
  • 举报
回复
动态创建的,如new和malloc
K行天下 2008-10-06
  • 打赏
  • 举报
回复
不需要
楼主应该补补基础了

动态分配的需要释放,如char*p = new char[10];
qqwx_1986 2008-10-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lann64 的回复:]
所有变量都需要释放,不过大多数是系统帮你释放的。
你自己的,就是你动态申请的 new,malloc的,需要你自己释放.
[/Quote]
up
书看多了 代码多了 自然就明白了
baihacker 2008-10-06
  • 打赏
  • 举报
回复
在运行时,为一个对象分配内存,并把这个内存的地址存储到一个指针内的时候,在不要用这个对象的时候,需要通过这个指针来回收.(没有垃圾回收机制)
char a = 'A';如果在栈上是自动释放的.
如果是全局的也会在程序结束的时候释放.
OenAuth.Net 2008-10-06
  • 打赏
  • 举报
回复
堆和栈的问题,看看这篇文章你就懂了:http://hi.baidu.com/anglecloudy/blog/item/c2b27045c5721020cefca33d.html
ysuliu 2008-10-06
  • 打赏
  • 举报
回复
你申请的你释放,不是你申请的你不用管
==>
用new/malloc 得到的内存要用 delete/free释放
lann64 2008-10-06
  • 打赏
  • 举报
回复
所有变量都需要释放,不过大多数是系统帮你释放的。
你自己的,就是你动态申请的 new,malloc的,需要你自己释放.
wuyu637 2008-10-06
  • 打赏
  • 举报
回复
new或者malloc出来的变量

其他的一般都不用你管理

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧