我必须 mallocate SLIST_HEADER 吗?
Do I have to mallocate SLIST_HEADER?
指南 "Using Singly Linked Lists" 在调用 InitializeSListHead()
之前使用 _aligned_malloc
分配 SLIST_HEADER 结构。是否要求列表头结构放在堆上?我的意思是,它是用 DECLSPEC_ALIGN(16)
声明的(在 Win64 上),编译器会将它放在所需的 16 字节边界上,不是吗?
这里的赠品是图书馆的组合。 SLIST 部分来自 Windows 本身(不假定 C/C++),而 _aligned_malloc
来自 MSVCRT。由于 SLIST 代码甚至无法假设使用了 MSVCRT,因此它不知道内存来自何处。
因此,无论您(或编译器)以何种方式对齐内存,或者您的语言如何调用特定类别的内存,都无关紧要。 (您的 "heap" 很可能不是 HeapAlloc
意义上的 Windows 堆)
指南 "Using Singly Linked Lists" 在调用 InitializeSListHead()
之前使用 _aligned_malloc
分配 SLIST_HEADER 结构。是否要求列表头结构放在堆上?我的意思是,它是用 DECLSPEC_ALIGN(16)
声明的(在 Win64 上),编译器会将它放在所需的 16 字节边界上,不是吗?
这里的赠品是图书馆的组合。 SLIST 部分来自 Windows 本身(不假定 C/C++),而 _aligned_malloc
来自 MSVCRT。由于 SLIST 代码甚至无法假设使用了 MSVCRT,因此它不知道内存来自何处。
因此,无论您(或编译器)以何种方式对齐内存,或者您的语言如何调用特定类别的内存,都无关紧要。 (您的 "heap" 很可能不是 HeapAlloc
意义上的 Windows 堆)