读书人

求getmemory函数的新写法,该如何处理

发布时间: 2012-09-25 09:55:59 作者: rapoo

求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的整数倍吧……

C/C++ code
void *getmm(int size, int align){char *p = NULL;int rsize = (size-1)/align * align +1;p = (char *)malloc(rsize);return p;}
[解决办法]
C/C++ code
        if (align < sizeof(int)) return NULL;        int temp = align/sizeof(int);        int ret = (size/temp + size%temp) * align;        p = (char *)malloc(ret);        return p;
[解决办法]
探讨
开辟的空间大小应该是align的整数倍吧……

C/C++ code
void *getmm(int size, int align)
{
char *p = NULL;
int rsize = (size-1)/align * align +1;
p = (char *)malloc(rsize);
return p;
}

读书人网 >C语言

热点推荐