关于堆内存和普通变量生命周期的问题

来源:孙鑫老师c++教程第7集

在创建非模态对话框时

void
CMyboleView::OnDialog()
{
 // TODO: Add your command handler code
here
方法一

TestDlg *ptdlg=new TestDlg(this);

ptdlg->Create(IDD_DIALOG1,this);

ptdlg->ShowWindow(TRUE);

方法二
 CDialog1
dlg;
 dlg.Create(IDD_DIALOG1,this);
 dlg.ShowWindow(SW_SHOW);
}

普通变量和堆上分配变量之间的生命周期的区别。

普通变量随着事件结束,生命周期结束,而堆上分配的内存与程序的整个生命周期是一致的。

关于堆内存和普通变量生命周期的问题,布布扣,bubuko.com

时间: 2024-10-10 08:25:58

关于堆内存和普通变量生命周期的问题的相关文章

Java内存区域和变量生命周期

在一台电脑上的内存存储区域分为6种: 1.寄存器: 寄存器是运行最快的,寄存器在系统中早就已经存在了,寄存器的数量是有限的,被严格要求            Java程序员不能显示的调用寄存器 2.栈:   栈中存储着基本数据类型的变量以及引用变量 栈中元素在超出其生命周期后会自动销毁             栈中元素一经创建,系统会为其分配内存空间,在其内存空间里存取的值是真值(真实存放的值)            栈中元素互不影响 每个在栈中的变量都有其自己对应的内存空间 里面存取着值  

java 静态变量生命周期(类生命周期)

Static: 加载:java虚拟机在加载类的过程中为静态变量分配内存. 类变量:static变量在内存中只有一个,存放在方法区,属于类变量,被所有实例所共享 销毁:类被卸载时,静态变量被销毁,并释放内存空间.static变量的生命周期取决于类的生命周期 类初始化顺序: 静态变量.静态代码块初始化 构造函数 自定义构造函数 结论:想要用static存一个变量,使得下次程序运行时还能使用上次的值是不可行的.因为静态变量生命周期虽然长(就是类的生命周期),但是当程序执行完,也就是该类的所有对象都已经

【Java编码准则】の #01限制内存中敏感数据的生命周期

当竞争对手的应用程序与我们的应用程序执行在同一个系统上时,我们的应用程序在内存中的敏感数据是非常easy被竞争对手获取的.假设我们的应用程序符合以下几种情况之中的一个,那么竞争对手能够获取到我们应用的敏感数据: 1)应用程序使用对象来存储敏感数据,并且在对象使用完后.对象的内容没有被清除或者对象没有被垃圾回收: 2)在操作系统执行内存管理任务或者执行休眠等功能时.应用程序的内存分页将被置换到磁盘上保存: 3)持有存储了操作系统缓存或者内存中敏感数据的buffer对象(比如BufferedRead

[shell] shell 变量生命周期, source, export

1. shell 的派生 用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令, 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本程序时,系统将创建一个子shell. 此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell.当一个脚本程序运行完毕,脚本shell将终止,返回到执行该脚本之前的shell. 从这种意义上来说,用户可以有许多 shell,每个shell都是由某个sh

面向过程—面向对象(C++的封装,this)_内存四区_变量生命周期

1.面向对象主要涉及  构造函数.析构函数.虚函数.继承.多态等. 2.对各种支持 的底层实现机制 c语言中,数据 和 处理数据的操作(函数) 是分开来声明,即语言本身并没有支持 “数据和函数”的关联性. 在C++中,通过抽象数据类型(abstract data type, ADT),在类中定义数据和函数,来实现数据和函数直接的绑定. C++成员数据:static.nonstatic C++成员函数:static.nonstatic.virtual C++中的类class从面向对象理论出发,将变

static变量生命周期小研究

A页面:定义一个普通类,类包含一个静态变量a,值为:111111111111111111 B页面:修改a的值为:22222222222222 C页面:用来查看a的值 1.在vs2008中,先打开B,再打开C,C显示a的值为:222222222222222 就算用ie打开B,用chrome打开C,C仍然显示为:22222222222222,证明与客户端无关: 2.在IIS中,直接打开C,显示为:11111111111111111 证明静态变量的值与服务器有关 3.在IIS中,先打开B,再打开C,C

《objective-c基础教程》学习笔记(十)—— 内存管理之对象生命周期

本篇博文,将给大家介绍下再Objective-C中如何使用内存管理.一个程序运行的时候,如果不及时的释放没有用的空间内存.那么,程序会越来越臃肿,内存占用量会不断升高.我们在使用的时候,就会感觉很卡,最终使得程序运行奔溃.因此,将无效的内存及时清理释放,是非常有必要的. 一个对象在最初创建使用,到最后的回收释放,经历的是怎样一个过程呢?包括:诞生(通过alloc或new方法实现).生存(接收消息并执行操作).交友(通过复合以及向方法传递参数).最终死去(被释放掉). 一.引用计数 在对象创建的时

switch case里的变量生命周期

1 #include <stdio.h> 2 3 int main() 4 { 5 6 int isw = 0; 7 switch(isw) { 8 9 case 1: //just lables 10 int a = 0; //a在这里定义,有效期到switch的},如果直接走了case2,此变量是没有定义的 ,所以编译不过. 11 break; //trans to goto statement 12 case 2: 13 break; 14 default: 15 break; 16 }

static变量生命周期 在php和java中的不同

<%! static class Count { private static int count = 0; public static int getCount(){ count++; return count; } } %> <% out.print(Count.getCount()); %> 通过浏览器连续访问,会分别输出:1,2,3,4,5,6,........ <?php class Count{ private static $count = 0; public