标题:用malloc()函数动态分配内存的方式重新写一个函数,实现内存地址的32位字节对 ...
只看楼主
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
结帖率:80%
已结贴  问题点数:30 回复次数:2 
用malloc()函数动态分配内存的方式重新写一个函数,实现内存地址的32位字节对齐??
这是一次面试时候一位面试官问到的问题,当时纠结了很久都没得到一个靠谱的答案!!哪位大神帮帮忙看一下怎么做,说一下大概思路!最好写程序实现!!谢谢啊!!!

我当初的思路是假设一个结构体
struct s
{
int a;
char b;
float c;
};
假定malloc()函数在给该结构体分配内存的时候首地址为0x0014,然后一次看每个成员变量起始地址相对首地址(0x0014)的偏移量,如果“偏移量%32!=0”就在在前一个成员变量的地址后面适当地添加填充字节,使得该成员变量的起始地址能被32整除!
不知道这个思路有没有问题,求高手指教啊!!!
搜索更多相关主题的帖子: 动态 结构体 面试官 内存 
2012-10-29 13:58
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
得分:30 
给你一个博客的链接吧....关于内存对齐的http://blog.

共同学习......
2012-10-29 15:14
zxd543
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:内蒙古
等 级:贵宾
威 望:17
帖 子:453
专家分:2351
注 册:2012-4-12
得分:0 
这得需要对内存的分配有很深的理解吧 期待解答

马马虎虎 不吝赐教 我是路过蹭分滴
2012-11-01 16:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-384854-1-1.html




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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.313697 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved