我理解的堆栈(stack)、动态内存分配与堆(heap)

本文通过分析VS2010中的反汇编代码,探讨堆栈(stack)的工作原理,强调其顺序分配和定长特性,以及动态内存分配(heap)的随机分配和内存回收机制。通过对程序运行时内存分配的跟踪,帮助读者深入理解这两种内存管理方式。
摘要由CSDN通过智能技术生成

                   看到第4章,首次接触到堆(heap)这个概念,不好理解,所以用vs2010反汇编跟踪下程序:

// use_new.cpp -- using the new operator
#include <iostream>
int main()
{
	using namespace std;
	int nights = 65535;
	int * ni = &nights;
	int * pt = new int;		
// new运算符为程序动态分配内存(程序运行时进行的),类似于C语言中的malloc函数
	*pt = 65535;

	cout << "int nights value = " << nights	// 从堆栈(stack)中取得数据65535
		<< ": location = " << &nights << endl;
	cout << "int* ni value = " << *ni		
// 从堆栈(stack)中取得ni值(地址[ni]),依照此(地址)在堆栈(stack)从寻找*ni中的数据65535
		<< ": location = " << ni << endl;
	cout << "int* pt value = " << *pt		
// 从堆栈(stack)中取得pt值(地址[pt]),依照此(地址)在堆(heap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值