我是否必须对SLIST_HEADER进行mallocate?

时间:2016-04-06 15:30:09

标签: c++ winapi interlocked

指南"Using Singly Linked Lists"使用_aligned_malloc分配SLIST_HEADER结构,然后再调用InitializeSListHead()。是否要求列表头结构放在堆上?我的意思是,它是用DECLSPEC_ALIGN(16)声明的(在Win64上),编译器会把它放在一个必需的16字节边界上,不是吗?

1 个答案:

答案 0 :(得分:0)

这里的赠品是图书馆的混合。 SLIST部分来自Windows本身(不假设C / C ++),而_aligned_malloc来自MSVCRT。由于SLIST代码甚至不能假设使用MSVCRT,因此它不知道内存来自何处。

因此,您(或编译器)对齐内存或您的语言如何调用特定类别的内存并不重要。 (你的#34;堆"很可能不是HeapAlloc意义上的Windows堆