免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3073 | 回复: 10
打印 上一主题 下一主题

如何在一个既定的地址空间内定位 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-18 11:00 |只看该作者 |倒序浏览
我想实现这样一个功能:
1:首先定义一个连续的地址空间
2:接收一个输入,somefunc(in...),输出是1中地址空间中的某个地址
3:要求:输入不同,输出也不同。即不会出现不同的输入指到相同的地址上去;相同的输入每次输出的地址都相同。

大家讨论讨论。哈哈,谢谢了。

论坛徽章:
0
2 [报告]
发表于 2007-10-18 11:05 |只看该作者
原帖由 cymx2002 于 2007-10-18 11:00 发表
我想实现这样一个功能:
1:首先定义一个连续的地址空间
2:接收一个输入,somefunc(in...),输出是1中地址空间中的某个地址
3:要求:输入不同,输出也不同。即不会出现不同的输入指到相同的地址上去;相同 ...

你这和定义一个数组有什么区别吗?
例如
void *func(unsigned int n)
{
        static char buf[1024];
        if ( n >= sizeof(buf) )
               return NULL;

        return (void *)&buf[n];
}


[ 本帖最后由 zx_wing 于 2007-10-18 11:08 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-10-18 11:05 |只看该作者
选择合适的hash算法即可

论坛徽章:
0
4 [报告]
发表于 2007-10-18 11:17 |只看该作者

回复 #2 zx_wing 的帖子

zx_win没有理解我的意思。我问题的关键是在后面。
按你说的我如果让n=10240000,还能直接用n来索引数组吗?

论坛徽章:
0
5 [报告]
发表于 2007-10-18 11:19 |只看该作者

回复 #3 Sorehead 的帖子

Sorehead能提供一个简单的例子吗?
或者给个可参考的网址。
谢谢了。

论坛徽章:
0
6 [报告]
发表于 2007-10-18 11:22 |只看该作者
原帖由 cymx2002 于 2007-10-18 11:17 发表
zx_win没有理解我的意思。我问题的关键是在后面。
按你说的我如果让n=10240000,还能直接用n来索引数组吗?

只要你数组够大,当然可以啊。
这里的数组就可以代表你要求的连续的地址空间,如果n已经大到超出了你可分配的内存范围,那肯定没有实际意义了。所以在可接受的范围,一个数组就可以满足你的要求。

论坛徽章:
0
7 [报告]
发表于 2007-10-18 11:24 |只看该作者

回复 #6 zx_wing 的帖子

我的目的就是节省空间!要不然我就不费这个事了。

论坛徽章:
0
8 [报告]
发表于 2007-10-18 11:26 |只看该作者
考虑hash看.

论坛徽章:
0
9 [报告]
发表于 2007-10-18 11:29 |只看该作者
原帖由 cymx2002 于 2007-10-18 11:24 发表
我的目的就是节省空间!要不然我就不费这个事了。

可能我还是不理解你的意思。什么节省空间?你的意思是一个数据结构,保存了一个连续地址空间范围内的所有地址,你想通过一个函数,给定一个输入拿到一个特定的地址,是吗?
如果是这样的话,那我想你说的是页表。

论坛徽章:
0
10 [报告]
发表于 2007-10-18 11:31 |只看该作者
原帖由 cymx2002 于 2007-10-18 11:00 发表
我想实现这样一个功能:
1:首先定义一个连续的地址空间
2:接收一个输入,somefunc(in...),输出是1中地址空间中的某个地址
3:要求:输入不同,输出也不同。即不会出现不同的输入指到相同的地址上去;相同 ...


这难道不个一一对应的问题么?用什么hash,直接+offset不行吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP