结构声明WLAN_AVAILABLE_NETWORK网络[1];

dav*_*vid 3 c struct

鉴于此结构:

typedef struct _WLAN_AVAILABLE_NETWORK_LIST {
    WLAN_AVAILABLE_NETWORK Network[1];
} *PWLAN_AVAILABLE_NETWORK_LIST;
Run Code Online (Sandbox Code Playgroud)

宣言WLAN_AVAILABLE_NETWORK Network[1]是什么意思?

eca*_*mur 9

看起来很可能Network是一个灵活的阵列成员.通过按sizeof(Network) * (n - 1)字节过度分配struct ,库和客户端代码可以访问结构的末尾,就好像数组成员是n元素long一样.

图书馆代码:

PWLAN_AVAILABLE_NETWORK_LIST list = malloc(sizeof(_WLAN_AVAILABLE_NETWORK_LIST)
    + (sizeof(WLAN_AVAILABLE_NETWORK) * (n - 1)));
for (int i = 0; i < n; ++i) {
    list->Network[i] = ...;
}
Run Code Online (Sandbox Code Playgroud)

客户代码:

for (int i = 0; i < n; ++i) {
    do_something(list->Network[i]);
}
Run Code Online (Sandbox Code Playgroud)