游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 游戏战士

关于内存

[复制链接]

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2006-7-4 23:10:00 | 显示全部楼层

Re:关于内存

我malloc了一段内存,没有对这段内存进行realloc或者del等操作,那么会不会由于别的内存段的申请和释放而影响到这段内存的地址,也就是CRT的堆管理器会不会自动改变一段内存的启始地址
---
不会。
我想这个回答对楼主最合适。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2006-7-5 09:19:00 | 显示全部楼层

Re:关于内存

感谢大家的回答,我现在做的东西需要通过指针地址比较来确定是否是所需要的那个对象,CRT(VC)堆操作的代码我看过些,主要是担心堆操作可能涉及到合并内存段,移动内存段来减小内部碎片和外部碎片,堆(VC)似乎是用链表组织的,这样的话应该只会移动链表单元,而不会对地址造成影响吧

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2006-7-5 09:23:00 | 显示全部楼层

Re: Re:关于内存

secretman: Re:关于内存

是说的内存的物理地址吗?
物理地址一般不是固定的,不过用windows的内存分配api可以锁定物理地址。
malloc和new好象没有锁定物理地址的选项

实在不好意思,我说的是线性地址

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2006-7-5 09:24:00 | 显示全部楼层

Re: Re: Re:关于内存

secretman: Re: Re:关于内存


windows可以锁定内存的物理地址的,详细可以看核心编程的说明。


记得核心编程确实提到过这样的API,好象是锁定线性地址吧

5

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2006-7-7 17:20:00 | 显示全部楼层

Re: Re: Re:关于内存

游戏战士: Re: Re:关于内存


实在不好意思,我说的是线性地址

线性地址当然不可能被变动,毕竟window给我的保证就是一个独立的不受打扰的进程空间。

5

主题

12

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2006-7-7 17:22:00 | 显示全部楼层

Re: Re: Re: Re:关于内存

游戏战士: Re: Re: Re:关于内存



记得核心编程确实提到过这样的API,好象是锁定线性地址吧

~_~ 线性地址需要锁定吗? 线性地址本身就是确定的。
另外用ddk的api也可以有部分的物理内存性的操作。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2006-7-8 10:32:00 | 显示全部楼层

Re: Re: Re: Re: Re:关于内存

secretman: Re: Re: Re: Re:关于内存


~_~ 线性地址需要锁定吗? 线性地址本身就是确定的。
另外用ddk的api也可以有部分的物理内存性的操作。


你说的锁定是什么意思?我意思是说可以从指定的地址分配内存。

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
 楼主| 发表于 2006-7-8 10:42:00 | 显示全部楼层

Re:关于内存

这个问题基本上解决了,之前想的多了,钻了牛角尖了。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2006-8-9 03:36:00 | 显示全部楼层

Re:关于内存

NEW的效率是比MALLOC低的,在WINDOWS下的实现。除非你改变了NEW的语意
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 02:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表