首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构声明WLAN_AVAILABLE_NETWORK Network[1];

结构声明WLAN_AVAILABLE_NETWORK Network[1];
EN

Stack Overflow用户
提问于 2012-08-13 23:08:40
回答 2查看 220关注 0票数 3

给定此结构:

代码语言:javascript
复制
typedef struct _WLAN_AVAILABLE_NETWORK_LIST {
    WLAN_AVAILABLE_NETWORK Network[1];
} *PWLAN_AVAILABLE_NETWORK_LIST;

声明WLAN_AVAILABLE_NETWORK Network[1]是什么意思?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-13 23:14:41

看起来Network的目的是作为一个flexible array member。通过按sizeof(Network) * (n - 1)字节过度分配结构,库和客户端代码可以在结构末尾之后进行访问,就像数组成员是n元素一样。

库代码:

代码语言:javascript
复制
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] = ...;
}

客户端代码:

代码语言:javascript
复制
for (int i = 0; i < n; ++i) {
    do_something(list->Network[i]);
}
票数 9
EN

Stack Overflow用户

发布于 2012-08-13 23:13:14

声明名为_wlan...list的结构的typedef struct _WLAN_AVAILABLE_NETWORK_LIST {

WLAN_AVAILABLE_NETWORK Network[1];假设在某个地方声明了一个名为WLAN_AVAILABLE_NETWORK的结构。它是一个长度为1(无意义)的数组,称为Network。

} *PWLAN_AVAILABLE_NETWORK_LIST;立即创建此结构的一个名为pwlan...list的(指针)变量

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11937128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档