指南"Using Singly Linked Lists"使用_aligned_malloc
分配SLIST_HEADER结构,然后再调用InitializeSListHead()
。是否要求列表头结构放在堆上?我的意思是,它是用DECLSPEC_ALIGN(16)
声明的(在Win64上),编译器会把它放在一个必需的16字节边界上,不是吗?
答案 0 :(得分:0)
这里的赠品是图书馆的混合。 SLIST部分来自Windows本身(不假设C / C ++),而_aligned_malloc
来自MSVCRT。由于SLIST代码甚至不能假设使用MSVCRT,因此它不知道内存来自何处。
因此,您(或编译器)对齐内存或您的语言如何调用特定类别的内存并不重要。 (你的#34;堆"很可能不是HeapAlloc
意义上的Windows堆