这种内存怎么释放,谢谢 char buf[MAX_PATH]; ::WideCharToMultiByte(CP_ACP,0,fontName,-1,buf,MAX_PATH,NULL,NULL); 就是这个buf怎么释放他谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char buf[MAX_PATH]放在栈中,作用范围结束系统自动帮你释放,你不用管 char buf[MAX_PATH];你这是在堆栈中分配的空间,函数结束后自动释放。再多说一句:由于这个原因,你不能把buf最为函数返回值,因为出去了一后,什么都没有了。 一般用new,malloc等申请的堆内存才要释放的 程序的内存分配一个由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本身是在栈中的。 MFC 制作的编程框怎样只输入小数,不输入文字 在子对话框上如何得到得到父窗口的CMSFlexGrid类控件关联的控件型变量 MFC中搜寻cpp文件中的中文字符并保存在txt中 请高手帮帮忙,文件能找回来吗 IOCP - 微软的例子 - 解压失败 不在OnInitDialog()函数中用listBox 输出字符串? 请问如何在一个视类中获得另一个视类的指针? 如何使scrollview的左边若干宽度冻结?不随着滚动条的滚动而滚动? mfc视图窗口重绘?谢谢 【MFC中CSpreadSheet类的使用问题??】 大家来看看华为的二面题.答对了基本上进华为没问题了! 看一小段代码....
你这是在堆栈中分配的空间,函数结束后自动释放。再多说一句:由于这个原因,你不能把buf最为函数返回值,因为出去了一后,什么都没有了。
一个由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本身是在栈中的。