您的位置:首页 > 其它

动态分配空间,地址为16的倍数(地址对齐)

2010-11-15 15:38 337 查看
代码:

#include<stdio.h>
#include<stdlib.h>

void *av_malloc(unsigned int size)
{
    void *ptr = NULL;
 long int diff;
    ptr = malloc(size+16);
    if(!ptr)
        return ptr;
    diff= ((-(long)ptr - 1)&15) + 1;
    ptr = (char*)ptr + diff;
    ((char*)ptr)[-1]= diff;

    return ptr;
}

int main()
{
 char *p;
 p=av_malloc(100);
 printf("address is %d/n",(long)p);
 return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐