求getmemory函数的新写法
我今天遇到一个题目,如下:
写分派空间程序 void *getmm(int size, int align),分配size大小的空间,并根据align指定的字节数方式对齐。
我的解答:
void *getmm(int size, int align)
{
char *p = NULL;
p = (char *)malloc(size);
return p;
}
但是align用来干什么的,我不太理解
在线等答案,谢谢了
[解决办法]
开辟的空间大小应该是align的整数倍吧……
void *getmm(int size, int align){char *p = NULL;int rsize = (size-1)/align * align +1;p = (char *)malloc(rsize);return p;}
[解决办法]
if (align < sizeof(int)) return NULL; int temp = align/sizeof(int); int ret = (size/temp + size%temp) * align; p = (char *)malloc(ret); return p;
[解决办法]