易码技术论坛

 找回密码
 加入易码
搜索
查看: 175149|回复: 7

[求助]如何真正完全的清除字符串

[复制链接]
发表于 2004-12-13 15:54:00 | 显示全部楼层
你如果申请的是Char s[]那么,初始化赋值的时候长度就固定了,不可能变的。
定义成Char *s倒是可以变的。不用的时候释放就可以。
不过,这是在C++里面,Lava里面不行……
发表于 2004-12-13 17:24:00 | 显示全部楼层
memset原型: void memset(int buffer,char c,int count); 功能: 把buffer所指内存区域的前count个字节设置成字符c 说明:  
用这个可以清空字符串...memset(string,0,length);//length是字符串长度..
发表于 2004-12-13 17:38:00 | 显示全部楼层
楼主不是这个意思吧
楼主意思是把这个数组占用的Ram还给系统……
设置成0这个数组仍然存在啊~-_-b
发表于 2004-12-13 20:59:00 | 显示全部楼层
由于LAVA不支持动态分配内存,所以楼主的问题是没有实际意义的~
无论你清不清空字符串,该处的RAM已经预先分配在那儿了,无法将它释放(好像也没必要)
 楼主| 发表于 2004-12-14 00:04:00 | 显示全部楼层
多谢大家
可是一个字符串要多次重复使用就会留下之前的一些不必要的东西,觉得有些麻烦
发表于 2005-1-2 11:54:00 | 显示全部楼层
用共享内存和仿指针
char shareram[10240];
int a;
int b;
int c;
a=shareram;
b=shareram+2048;
c=shareram+8192;
..........
这样可以哦,不过不能用a[0];
发表于 2005-1-7 18:55:00 | 显示全部楼层
养成好习惯,例如
数组a[],用a[0]记录数组长度
 楼主| 发表于 2004-12-12 23:31:52 | 显示全部楼层 |阅读模式
s[0]=0;并没有能真正的清空字符串,0之后还是原来的内容
怎样才能把字符串完全的清空呢,否则若字符串较长不是浪费RAM么
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-20 09:43 , Processed in 0.009530 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表