| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 116 人关注过本帖
标题:自己通过malloc或者VirtualAlloc申请的内存,地址是怎么样的?
只看楼主 加入收藏
a451410
Rank: 2
等 级:论坛游民
帖 子:133
专家分:98
注 册:2018-3-4
结帖率:83.67%
收藏
 问题点数:5 回复次数:2 
自己通过malloc或者VirtualAlloc申请的内存,地址是怎么样的?
我想自己申请一块内存模拟堆栈变化用,所以我想知道申请后返回的地址是头还是尾?
意思就是,自己申请的内存应该是连续的吧?那么返回的地址是较小的地址还是较大的
地址,比如申请的空间是0x1-0x9,那返回的是0x1,还是0x9呢?
5 天前 22:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9046
专家分:54136
注 册:2011-1-18
收藏
得分:0 
0x1
4 天前 08:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9046
专家分:54136
注 册:2011-1-18
收藏
得分:0 
如果不是这样的话,那么 int* p = malloc( 2*sizeof(int) ) 之后,你只能这么用:
((int*)((char*)p + 1 - n*sizeof(int)))[0] = ……;
((int*)((char*)p + 1 - n*sizeof(int)))[1] = ……;

[此贴子已经被作者于2025-3-27 08:15编辑过]

4 天前 08:12
快速回复:自己通过malloc或者VirtualAlloc申请的内存,地址是怎么样的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019723 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved