这种内存怎么释放,谢谢
char buf[MAX_PATH];
::WideCharToMultiByte(CP_ACP,0,fontName,-1,buf,MAX_PATH,NULL,NULL);
就是这个buf
怎么释放他
谢谢
问题点数:20、回复次数:9Top
1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-08-23 12:13:08 得分 1
不要释放。Top
2 楼happyparrot(快乐鹦鹉)回复于 2005-08-23 12:14:54 得分 1
不用释放阿。Top
3 楼i_noname(晚九朝五)回复于 2005-08-23 12:15:30 得分 2
char buf[MAX_PATH]放在栈中,作用范围结束系统自动帮你释放,你不用管Top
4 楼httpaspjspphp(小杨大刀)回复于 2005-08-23 12:16:01 得分 0
不释放会不会有内存泄漏啊
能不能解释一下原因阿Top
5 楼lixiaosan(小三)回复于 2005-08-23 12:18:33 得分 1
这个你不用关心。。系统帮你搞定Top
6 楼nelsonc(软件兔)回复于 2005-08-23 12:30:32 得分 5
char buf[MAX_PATH];
你这是在堆栈中分配的空间,函数结束后自动释放。
再多说一句:由于这个原因,你不能把buf最为函数返回值,因为出去了一后,什么都没有了。Top
7 楼i_noname(晚九朝五)回复于 2005-08-23 12:34:53 得分 2
一般用new,malloc等申请的堆内存才要释放的Top
8 楼kknd2005(人生有两种遗憾:一种是没得到,一种是得到了)回复于 2005-08-23 14:33:53 得分 1
...
LZ再复习一下C++吧...Top
9 楼OMA_yudy(太平洋深深)回复于 2005-08-23 15:04:20 得分 7
程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分:
1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等.
2、堆区(heap) — 一般由程序员分配放,若程序员不释放,程序结束时可能由OS回收.
3、全局区(静态区)(static),全局变量和静态变量的存储是放在一块的 - 程序结束后有系统释放 .
4、文字常量区—常量字符串就是放在这的. 程序结束后由系统释放.
5、程序代码区—存放函数体的二进制代码。
堆和栈的理论知识
2.1申请方式
stack:
由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间
heap:
需要程序员自己申请,并指明大小,在c中malloc函数
如p1 = (char *)malloc(10);
在C++中用new运算符 如p2 = new char[10];
但是注意p1、p2本身是在栈中的。
Top




