C++ new到底new什么
9: int *obj = new int(6);
00F714CE push //压栈
00F714D0 call operator new (0F711EAh) //调用new函数返回分配的地址addr --- 0F711EAh是指令 jmp operator new 的地址
00F714D5 add esp, //恢复栈
00F714D8 mov dword ptr [ebp-0F8h],eax //把返回的地址addr赋给起始地址为ebp-0F8h的内存空间
00F714DE cmp dword ptr [ebp-0F8h], //判断分配是否成功
00F714E5 je main+51h (0F71501h) //如果不成功跳往0x0F71501h
00F714E7 mov eax,dword ptr [ebp-0F8h] //起始地址为ebp-0F8h 的内存空间(addr)赋值给eax
00F714ED mov dword ptr [eax], //把以起始地址为eax的内存空间(addr)置成6
00F714F3 mov ecx,dword ptr [ebp-0F8h] //起始地址为ebp-0F8h 的内存空间(addr)赋值给ecx
00F714F9 mov dword ptr [ebp-100h],ecx //ecx的值(addr)赋给起始地址为ebp-100h的内存空间
00F714FF jmp main+5Bh (0F7150Bh) //无条件跳转到0x0F7150B
00F71501 mov dword ptr [ebp-100h], //起始地址为ebp-100h的内存空间置为0---分配失败的情况
00F7150B mov edx,dword ptr [ebp-100h] //起始地址为ebp-100h的内存空间(addr)赋值给edx
00F71511 mov dword ptr [obj],edx //把edx的内容(addr)赋值给obj为起始地址的内存空间a
10: delete obj;
00F71514 mov eax,dword ptr [obj] //把obj为起始地址的内存空间送往eax
00F71517 mov dword ptr [ebp-0ECh],eax //eax送往以ebp-0ECh为起始地址的内存空间
00F7151D mov ecx,dword ptr [ebp-0ECh] //以ebp-0ECh为起始地址的内存空间送往ecx
00F71523 push ecx //ecx压栈
00F71524 call operator delete (0F710A0h)
00F71529 add esp,
11:int *obj2 = new int(7);
与分配obj相同
C++ new到底new什么的更多相关文章
- 拨开迷雾,找回自我:DDD 应对具体业务场景,Domain Model 到底如何设计?
写在前面 除了博文内容之外,和 netfocus 兄的讨论,也可以让你学到很多(至少我是这样),不要错过哦. 阅读目录: 迷雾森林 找回自我 开源地址 后记 毫无疑问,领域驱动设计的核心是领域模型,领 ...
- Js new到底发生了什么
在Js中,我们使用了new关键字来进行实例化 那么在这个new的过程中到底发生了什么? 关于构造函数的return 正常来讲构造函数中是不用写return语句的,因为它会默认返回新创建的对象. 但是, ...
- 电信计费业务:预后融合OCS到底应该实扣还是虚扣?
引入OCS的初衷之一是为了让计费系统能够参与到用户的通讯控制中来,也就是所谓的实时信控.用户在没有余额时,通讯就会被停止,不会造成"天价欠费 ",一方面保障用户的利益,一方面也保障 ...
- 港真,到底应该选择OA还是BPM?
越来越多企业意识到流程管理的重要性,但是,选择OA还是BPM,却让他们产生了选择困难症. 一方面,企业皆注重流程的高效运转,最好内外部的业务都能用一个系统来解决.所有流程一天就能上线什么的,那就更好啦 ...
- 四、可空类型Nullable<T>到底是什么鬼
值类型为什么不可以为空 首先我们都知道引用类型默认值都是null,而值类型的默认值都有非null. 为什么引用类型可以为空?因为引用类型变量都是保存一个对象的地址引用(就像一个url对应一个页面),而 ...
- 在开发中到底要不要用var?
var是.net的一个语法糖,在Resharper中推荐都使用这个关键字,平常我也是经常用:但是在跟其他程序员推广使用时,他的一些考虑引发了我的深思,到底该不该使用这个关键字呢? 我使用的理由 我使用 ...
- 阿里的weex框架到底是什么
title: 阿里的weex框架到底是什么 date: 2016-09-27 10:22:34 tags: vue, weex category: 技术总结 --- weex 工作原理 首先看下官方的 ...
- 全局变量 HInstance 到底是在什么时候赋值的?
在学习 资源文件 和 钩子函数 时, 经常用到当前模块句柄(HInstance)这个全局变量. 今天特别想知道, 它到底是在什么时候给赋值的. 输入 HInstance; "Ctrl+鼠标& ...
- 从问题看本质:socket到底是什么?
一.问题的引入——socket的引入是为了解决不同计算机间进程间通信的问题 1.socket与进程的关系 1).socket与进程间的关系:socket 用来让一个进程和其他的进程互通信息(IPC ...
- char varchar nchar nvarcharar到底有多大区别
首先说明下,ASP.NET MVC系列还在龟速翻译中. 工作好多年,基础知识甚是薄弱,决定以后在coding(cv操作)的时候尽量多google下,然后总结下来,目的有三: 1. 加深自己的理 ...
随机推荐
- ubuntu16安装最新版docker
ubuntu16.04安装最新版docker.docker-compose.docker-machine https://www.cnblogs.com/tianhei/p/7802064.html ...
- B/S供应链(打印管理)问题答疑
1.环境上的搭建答疑 .{"System.Data.OracleClient需要 Oracle 客户端软件 version 8.1.7或更高版本."} 解决:未装客户端,或所装版本 ...
- riotjs 简单使用&&browserify 构建
项目地址: http://riotjs.com/ 备注: 为了简单使用了 browserify 进行构建 1. 项目结构 ├── app.css ├── gulpfile.js ├── index.h ...
- redis 连接池的一些问题
问题: Could not get a resource from the pool 将配置修改为如下: JedisPoolConfig config =newJedisPoolConfig ...
- (转)Android短信的发送和接收监听
/**发送与接收的广播**/ String SENT_SMS_ACTION = "SENT_SMS_ACTION"; String DELIVERED_SMS_AC ...
- Java NIO简单介绍(一)
Java NIO( New IO) 是从Java 1.4版本开始引入的 一个新的IO API,可以替代标准的Java IO API. NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NI ...
- 15.Python实现识别登录验证码(入门)
1.若想识别登录验证码,需要安装:Tesseract-OCR,其下载地址为:http://jaist.dl.sourceforge.net/project/tesseract-ocr-alt/tess ...
- string源码分析 ——转载 http://blogs.360.cn/360cloud/2012/11/26/linux-gcc-stl-string-in-depth/
1. 问题提出 最近在我们的项目当中,出现了两次与使用string相关的问题. 1.1. 问题1:新代码引入的Bug 前一段时间有一个老项目来一个新需求,我们新增了一些代码逻辑来处理这个新需求.测试阶 ...
- 【备忘录】CentOS服务器mysql忘记root密码恢复
mysql的root忘记,现无法操作数据库 停止mysql服务service mysql stop 然后使用如下的参数启动mysql, --skip-grant-tables会跳过mysql的授权 ...
- websphere删除概要文件(profiles)的方式
[b]删除概要文件:[/b]方案一:1.找到profileRegistry.xml,在目录IBM\WebSphere\AppServer\properties里,去掉想删除的profile的配置即可. ...