![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
so_dota_so
这个作者很懒,什么都没留下…
展开
-
(size_t)&(((s*)0)->m) 的理解
#define offsetof(s,m) (size_t)&(((s *)0)->m) 看了半天没弄懂,空指针怎么会不出错的,他们说没有写入操作,即没有 mov x, dword ptr []。找了下别人的理解,最详细的如下: ((s *)0):强制转化成数据结构指针,并使其指向地址0; ((s *)0)->m:使该指针指向成员m &(((s *)0)-&...转载 2018-08-09 10:32:11 · 1387 阅读 · 0 评论 -
malloc内存分配原理
一、malloc的工作机制 它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。 调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。 调用free函数时,它将用户释放的...转载 2018-09-03 17:30:40 · 5190 阅读 · 0 评论