用malloc()函数动态分配内存的方式重新写一个函数,实现内存地址的32位字节对齐??
这是一次面试时候一位面试官问到的问题,当时纠结了很久都没得到一个靠谱的答案!!哪位大神帮帮忙看一下怎么做,说一下大概思路!最好写程序实现!!谢谢啊!!!我当初的思路是假设一个结构体
struct s
{
int a;
char b;
float c;
};
假定malloc()函数在给该结构体分配内存的时候首地址为0x0014,然后一次看每个成员变量起始地址相对首地址(0x0014)的偏移量,如果“偏移量%32!=0”就在在前一个成员变量的地址后面适当地添加填充字节,使得该成员变量的起始地址能被32整除!
不知道这个思路有没有问题,求高手指教啊!!!