c++下如何清空内存

kk706 2006-01-14 11:09:42
1 定义一个数组 char a[120] ,我想先把这个数组占用的内存空间清空(不知道这样叫对不对,还是叫清零),请问如何实现?
2 如果我要频繁的对一个数组做写入数据与清空操作,怎样定义数组才能使它在程序运行时,一直指 向同一内存地址?
谢谢。
...全文
660 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanlicome 2006-01-15
  • 打赏
  • 举报
回复
你是在stack上生成的array,这样的话它只有在生存期内存在.在heap上用new生成你才能用delete清空
逸学堂 2006-01-15
  • 打赏
  • 举报
回复
这中间涉及,变量生命期的问题.
根据变量生命期,
可以很容易的知道
你在一个函数内,申请的一个变量.那么这个变量的生命期就是,
当这个函数调用到退出这个函数.

在这个过程中,你申请的这个函数,不会消亡,也就是说申请人无法销毁这个
变量.他由系统统一管理.就像你在一个函数体内不能
int i;
int i;
定义两个i一样.

对于1:没有必要清空数据,因为退出时,系统会给你清空.如果只是数组内容清空
memset(a,'\0',120);
对于问题2:就利用memest就可以,清空a中的数据,当下次使用时a的地址不便.
mingpingzhang 2006-01-15
  • 打赏
  • 举报
回复
char a[120]={0};
这个方法最简单。
sankt 2006-01-15
  • 打赏
  • 举报
回复
1.
char a[120];
memset(a,0,120);

2.
const int N=100;
static a[N];
睡在床板下_ 2006-01-15
  • 打赏
  • 举报
回复
new 运算子(不是new) 可以在指定的 空间上分配空间, 但是不一定 符合lz
greenteanet 2006-01-15
  • 打赏
  • 举报
回复
不可能。
quickreport 2006-01-14
  • 打赏
  • 举报
回复
0 != 空;
ma100 2006-01-14
  • 打赏
  • 举报
回复
1. 不可能
2. 没必要

64,646

社区成员

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

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