社区
C++ 语言
帖子详情
一个内存空间分配的问题.
lklll
2006-04-07 10:20:57
int* pointer()
{
return new int(0);
}
这是一个分配int类型内存空间的函数,
我的问题是,一般在函数中定义的变量,在函数结束的时候,就会自动释放空间,这个函数申请的空间不会自动释放掉么?
...全文
233
9
打赏
收藏
一个内存空间分配的问题.
int* pointer() { return new int(0); } 这是一个分配int类型内存空间的函数, 我的问题是,一般在函数中定义的变量,在函数结束的时候,就会自动释放空间,这个函数申请的空间不会自动释放掉么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aniude
2006-04-08
打赏
举报
回复
------
凡是new 的都要手动释放
netting_fish
2006-04-08
打赏
举报
回复
用new malloc()申请的内存在程序结束时如果没有delete free会不会自动释放掉
pottichu
2006-04-07
打赏
举报
回复
接口!
lklll
2006-04-07
打赏
举报
回复
堆与栈与内存空间是什么关系,有什么区别呢?
YFY
2006-04-07
打赏
举报
回复
new 总是要与 delete 成对使用。
内存分配方式有三种:
(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。
tianrolin
2006-04-07
打赏
举报
回复
需要调用delete释放这个指针
int *a;
a=pointer();
//do_something
delete a;
不过楼主写这个pointer()有什么意义?
sinkileu
2006-04-07
打赏
举报
回复
得,基本完全,下面的同志别再回重复答案了.
妍妍
2006-04-07
打赏
举报
回复
补充一点:楼主说的那种自动释放空间的,都是在栈上分配的,函数结束时,退栈,自然就释放空间了
妍妍
2006-04-07
打赏
举报
回复
这是在堆上动态申请的内存,编译器并无法控制它的生命期,需要程序员决定何时释放这个空间
动态内存
分配
与静态内存
分配
文章目录一.静态内存管理二.动态内存管理1.为什么存在动态内存管理2.动态内存函数的介绍1).malloc函数2.calloc函数3.realloc函数4.free函数5.动态开辟空间代码的标准写法 一.静态内存管理 静态内存是指程序开始运行时,由编译器自动
分配
和释放空间。程序中的各种变量,在程序编译时都需要
分配
空间,当函数调用完,空间自动释放。此时**用户不需要关心空间的申请与释放
问题
。**通常都储存在栈中。 例如: int i=20;//在栈上开辟4字节的空间 char a[10]={0};//在栈上开
C++——指针与内存
分配
指针与内存
分配
Thanks for 注意栈空间与堆空间都是有限的,因而可能出现空间过大的状态,将大的数组放在全局数据。 1.静态数据区 内存连续
分配
,数据的地址与
分配
顺序有关 2.栈空间 栈是一种先进后出的数据结构 函数内定义的局部变量及函数参数都在栈空间
分配
. 栈空间中内存连续
分配
, 数据的地址顺序与数据
分配
的先后顺序相反. 每个线程(程序)的栈空间独立且大小有限,栈空间
分配
...
C++动态
分配
内存空间
动态
分配
内存空间
new和delete运算符是用于动态
分配
和撤销内存的运算符。 new 1.开辟单变量地址空间 一般使用格式: 格式1:指针变量名=new 类型标识符; 格式2:指针变量名=new 类型标识符(初始值); 格式3:指针变量名=new 类型标识符 [内存单元个数]; 说明:格式1和格式2都是申请
分配
某一数据类型所占字节数的
内存空间
;但是格式2在内存
分配
成功后,同时将一初值存放到该内存单元中;而格式3可同时
分配
若干个内存单元,相当于形成
一个
动态数组。例如: new int; //开辟
一个
存放整数
内存管理
分配
方式及
分配
算法
内存管理- 一.存储器管理应具有的功能? ① 内存的
分配
和回收: 实施内存的
分配
,回收系统或用户释放的
内存空间
。New delete() ② 地址变换: 提供地址变换功能,将逻辑地址转换成物理地址。 ③ 扩充内存: 借助于虚拟存储技术和其他自动覆盖技术,为用户提供比
内存空间
大的地址空间,从逻辑 上扩充内存。把不重要的,不常有的占据内存的资源换出到外存。 ④ 存储保护: 保证进入内存的各道作业都在自己的存储空间内运行,互不干扰。 二.将用户程序变为可在内存中执行的程序的步骤? 1.编译: 由编译程序将用户源代
一. go 内存管理之 内存
分配
相关
先了解一下golang中内存
分配
一些前置概念相关的东西参考博客Go 语言设计与实现GO专家编程Go 语言
问题
集(Go Questions)了解Go内存
分配
前,先了解一下几种内存
分配
方式,引出Go中根据对象大小的分级
分配
与,内存管理组件线性
分配
: 就是维护
一个
指针指向空闲内存区域,移动指针到空闲区域
分配
空闲内存即可,优点: 实现复杂度低,执行速度快,缺点: 如果
分配
的内存被回收了,线性
分配
器是无法重新使用,容易造成内存碎片。
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章