Winapi <;winnt.h>;?
位于WinNT.h的ANYSIZE\u数组的用途是什么 我在2004年的MSDN博客上看到了一篇关于它的文章,但这对我来说毫无意义 来自: 在C语言中,可变大小数组被声明为Winapi <;winnt.h>;?,winapi,dynamic-arrays,Winapi,Dynamic Arrays,位于WinNT.h的ANYSIZE\u数组的用途是什么 我在2004年的MSDN博客上看到了一篇关于它的文章,但这对我来说毫无意义 来自: 在C语言中,可变大小数组被声明为a[1]或a[ANYSIZE\u数组],其中ANYSIZE\u数组被定义为1。然后它被当作更大的东西使用 我想你是在说什么 当可变大小(编译时未知)数组是结构的一部分时,通常会使用它: typedef struct { int CommonFlags int CountOfThings; THING T
a[1]
或a[ANYSIZE\u数组]
,其中ANYSIZE\u数组
被定义为1
。然后它被当作更大的东西使用
我想你是在说什么 当可变大小(编译时未知)数组是结构的一部分时,通常会使用它:
typedef struct {
int CommonFlags
int CountOfThings;
THING Things[ANYSIZE_ARRAY]; //Things[1];
} THINGSANDFLAGS;
要使用这些结构,通常首先调用所需的API以获得数据的大小,然后分配足够大的内存块,最后再次调用相同的API,以便它可以填充数据…请给我们MSDN博客帖子的链接?@Agnel@LemonBeagle链接列表需要更多内存,并且/或者API实现可能已经在内部数组中包含了项,并且可以将其存储到调用方缓冲区中。浏览项目列表也比较慢,您必须释放每个项目,而不仅仅是一个大的缓冲区。。。