打印

C语言怎么在指定地址Addr处分配一段内存区域?

[复制链接]
1264|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ytjzhjun|  楼主 | 2014-5-19 19:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问C语言怎么在指定地址Addr处分配一段内存区域?
我使用realloc(),可是函数返回值并不是预设地址,如下:
lu8alloc_p = realloc(Addr,1572864);  结果lu8alloc_p不等于Addr,确定从Addr地址开始的1572864字节是没有被占用的;
请问什么原因导致以上问题?有没有其他方式可以在指定起始地址分配一段较大的区域呢?
先谢谢。

相关帖子

沙发
dirtwillfly| | 2014-5-19 21:45 | 只看该作者
如果能确定那一段地址没有使用,可以直接用指针或强制格式转换该地址块。
例如: (TYPE*)(Addr)

使用特权

评论回复
板凳
zyj9490| | 2014-5-19 21:48 | 只看该作者
在CSS可以实现的,它有编译指令,专门划出一个RAM,分配给特定的变量,通过连结CMD文件,使逻辑段与物理段相关连.

使用特权

评论回复
地板
zyj9490| | 2014-5-19 21:50 | 只看该作者
或者让特定的区不让编译器分配变量和常量,代码,KEIL可以设定的,这样强制使用它.

使用特权

评论回复
5
ytjzhjun|  楼主 | 2014-5-20 08:38 | 只看该作者
dirtwillfly 发表于 2014-5-19 21:45
如果能确定那一段地址没有使用,可以直接用指针或强制格式转换该地址块。
例如: (TYPE*)(Addr) ...

谢谢您的回复,请问用您说的方法的话,会不会出现以后程序中增加代码造成原来没有使用的那段地址被使用了,这样不是就破坏里面的数据了么?请问有没有方法对该区域加一个保护,不允许其他程序访问该段区域呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:凡事都要坚持,因为你是个男人!

235

主题

309

帖子

1

粉丝