文章列表
 
您正在查看 "Opencv" 分类下的文章

2009-10-15 11:46

cvCreateMemStorage调用过程:
CvMemStorage* cvCreateMemStorage(int block_size) --->void* cvAlloc( size_t size )--->
static void* icvDefaultAlloc( size_t size, void* )---->void* cvAlignPtr( const void* ptr, int align=32 )

/* creates root memory storage *

 
2009-10-15 11:09

CV_INLINE void* cvAlignPtr( const void* ptr, int align=32 )
{
assert( (align & (align-1)) == 0 ); //确保align是2的幂
return (void*)( ((size_t)ptr + align - 1) & ~(size_t)(align-1) ); //把指针调整到align的整数倍地址 (把后5位清0)  
}  

比如ptr=0x00FE3A54, align=32:
        0x00FE3A54+0x00000020-1=0x00FE3A73 =0000 0000 1111 1110 0011 1010 0111 0011
       

 
 
   
 
 
文章分类
 
   
 
文章存档
 
     
 
最新文章评论
  

长见识!
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu