Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winapi <;winnt.h>;?_Winapi_Dynamic Arrays - Fatal编程技术网

Winapi <;winnt.h>;?

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

位于WinNT.h的ANYSIZE\u数组的用途是什么

我在2004年的MSDN博客上看到了一篇关于它的文章,但这对我来说毫无意义

来自:

在C语言中,可变大小数组被声明为
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实现可能已经在内部数组中包含了项,并且可以将其存储到调用方缓冲区中。浏览项目列表也比较慢,您必须释放每个项目,而不仅仅是一个大的缓冲区。。。