青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

柔性數組結構成員

C99中,結構中的最后一個元素允許是未知大小的數組,這就叫做柔性數組成員,但結構中的柔性數組成員前面必須至少一個其 他成員。柔性數組成員允許結構中包含一個大小可變的數組。sizeof返回的這種結構大小不包括柔性數組的內存。包含柔性數組成員的結構用malloc ()函數進行內存的動態分配,并且分配的內存應該大于結構的大小,以適應柔性數組的預期大小。】 
C語言大全,“柔性數組成員”

【柔性數組結構成員
  C99中,結構中的最后一個元素允許是未知大小的數組,這就叫做柔性數組成員,但結構中的柔性數組成員前面必須至少一個其 他成員。柔性數組成員允許結構中包含一個大小可變的數組。sizeof返回的這種結構大小不包括柔性數組的內存。包含柔性數組成員的結構用malloc ()函數進行內存的動態分配,并且分配的內存應該大于結構的大小,以適應柔性數組的預期大小。】 
C語言大全,“柔性數組成員”

看看 C99 標準中 靈活數組成員:

結構體變長的妙用——0個元素的數組
有時我們需要產生一個結構體,實現了一種可變長度的結構。如何來實現呢?
看這個結構體的定義:
typedef struct st_type
{
int nCnt;
int item[0];
}type_a;
(有些編譯器會報錯無法編譯可以改成:)
typedef struct st_type
{
int nCnt;
int item[];
}type_a;
這樣我們就可以定義一個可變長的結構,用sizeof(type_a)得到的只有4,就是sizeof(nCnt)=sizeof(int)那

個0個元素的數組沒有占用空間,而后我們可以進行變長操作了。
C語言版:
type_a *p = (type_a*)malloc(sizeof(type_a)+100*sizeof(int));
C++語言版:
type_a *p = (type_a*)new char[sizeof(type_a)+100*sizeof(int)];
這樣我們就產生了一個長為100的type_a類型的東西用p->item[n]就能簡單地訪問可變長元素,原理十分簡單

,分配了比sizeof(type_a)多的內存后int item[];就有了其意義了,它指向的是int nCnt;后面的內容,是沒

有內存需要的,而在分配時多分配的內存就可以由其來操控,是個十分好用的技巧。
而釋放同樣簡單:
C語言版:
free(p);
C++語言版:
delete []p;
其實這個叫靈活數組成員(fleible array member)C89不支持這種東西,C99把它作為一種特例加入了標準。但

是,C99所支持的是incomplete type,而不是zero array,形同int item[0];這種形式是非法的,C99支持的

形式是形同int item[];只不過有些編譯器把int item[0];作為非標準擴展來支持,而且在C99發布之前已經有

了這種非標準擴展了,C99發布之后,有些編譯器把兩者合而為一。
下面是C99中的相關內容:
6.7.2.1 Structure and union specifiers

As a special case, the last element of a structure with more than one named member may have 

an incomplete array type; this is called a flexible array member. With two exceptions, the 

flexible array member is ignored. First, the size of the structure shall be equal to the offset 

of the last element of an otherwise identical structure that replaces the flexible array member 

with an array of unspecified length.106) Second, when a . (or ->) operator has a left operand 

that is (a pointer to) a structure with a flexible array member and the right operand names that 

member, it behaves as if that member were replaced with the longest array (with the same element 

type) that would not make the structure larger than the object being accessed; the offset of the 

array shall remain that of the flexible array member, even if this would differ from that of the 

replacement array. If this array would have no elements, it behaves as if it had one element but 

the behavior is undefined if any attempt is made to access that element or to generate a pointer 

one past it.
例如在VC++6里使用兩者之一都能通過編譯并且完成操作,而會產生warning C4200: nonstandard extension 

used : zero-sized array in struct/union的警告消息。
而在DEVCPP里兩者同樣可以使用,并且不會有警告消息。

posted on 2016-04-14 11:14 sheng 閱讀(497) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

<2016年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

統計

常用鏈接

留言簿(1)

隨筆檔案

收藏夾

同行

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产日韩在线| 日韩午夜电影av| 久久久久久999| 久久gogo国模裸体人体| 激情成人综合网| 欧美jizz19性欧美| 欧美经典一区二区| 亚洲无毛电影| 香蕉尹人综合在线观看| 国产一区二区三区精品久久久| 久久久久久夜| 久久综合久久综合九色| 99re在线精品| 亚洲女同在线| 亚洲高清资源综合久久精品| 亚洲精品日日夜夜| 国产精品嫩草影院一区二区| 久久蜜桃精品| 欧美黄在线观看| 小嫩嫩精品导航| 老司机成人网| 亚洲一区二区三区四区在线观看| 午夜精品久久久久久久蜜桃app | 欧美1区免费| 在线一区亚洲| 久久精品国产2020观看福利| 亚洲伦伦在线| 欧美一区二区黄色| 在线性视频日韩欧美| 性欧美办公室18xxxxhd| 亚洲日本理论电影| 欧美亚洲一区在线| 亚洲视频在线观看视频| 久久男女视频| 午夜一级在线看亚洲| 你懂的国产精品永久在线| 午夜视黄欧洲亚洲| 欧美国产一区二区在线观看| 久久精品在线| 国产精品第13页| 欧美韩日一区| 国产一区二区三区高清在线观看 | 欧美在线关看| 欧美日韩一区二区三区在线视频| 久久综合色播五月| 国产精品夜夜夜| 亚洲精品一区二区三区在线观看 | 国产日韩欧美一二三区| 亚洲日本电影在线| 激情文学综合丁香| 亚洲欧美卡通另类91av| 亚洲午夜精品在线| 欧美精品18| 欧美激情一区二区三区蜜桃视频 | 欧美午夜电影完整版| 亚洲国产综合91精品麻豆| 激情视频一区二区| 欧美一级电影久久| 欧美一区二区三区婷婷月色 | 欧美 日韩 国产一区二区在线视频| 欧美一区国产一区| 国产精品午夜国产小视频| 日韩一本二本av| 一本色道久久加勒比精品| 欧美电影在线观看| 亚洲黄色在线视频| 日韩一二在线观看| 欧美日韩国产系列| 日韩午夜激情| 亚洲欧美成人在线| 国产精品免费一区二区三区在线观看 | 蜜桃久久精品一区二区| 黑人操亚洲美女惩罚| 欧美自拍偷拍| 暖暖成人免费视频| 亚洲三级免费电影| 欧美日韩1234| 亚洲视频在线看| 欧美诱惑福利视频| 精品不卡一区二区三区| 久久夜色精品国产欧美乱| 欧美激情一区二区三区成人 | 国产乱码精品一区二区三区不卡| 国产精品99久久久久久久久久久久| 亚洲免费在线播放| 国产伦精品一区二区三区高清版 | 欧美第十八页| 日韩午夜av| 国产精品久久一卡二卡| 性色av一区二区三区| 狂野欧美激情性xxxx欧美| 91久久久久久国产精品| 欧美日韩亚洲国产一区| 西西人体一区二区| 欧美电影免费观看高清| 亚洲午夜在线观看视频在线| 国产一区二区三区久久| 欧美va亚洲va日韩∨a综合色| 亚洲毛片在线看| 久久精品国产v日韩v亚洲 | 国产精品午夜电影| 久久婷婷蜜乳一本欲蜜臀| 亚洲精品国精品久久99热| 欧美中文在线观看| 亚洲伦理一区| 国产真实久久| 欧美日韩在线视频一区二区| 久久精品夜色噜噜亚洲a∨| 亚洲高清在线观看| 久久国产精品久久久久久久久久| 亚洲国产清纯| 国产视频精品免费播放| 欧美极品欧美精品欧美视频| 欧美一区影院| 99国产精品私拍| 欧美r片在线| 欧美一区影院| 亚洲性感激情| 亚洲日本中文字幕区| 国产一区二区精品在线观看| 欧美日韩99| 农夫在线精品视频免费观看| 久久精彩视频| 亚洲综合精品| 一本色道久久综合狠狠躁篇怎么玩 | 久久久久国产精品一区| 亚洲视频在线二区| 日韩小视频在线观看专区| 激情成人中文字幕| 国产午夜精品美女毛片视频| 国产精品超碰97尤物18| 欧美日韩网址| 欧美国产日韩xxxxx| 狂野欧美一区| 久久久精品动漫| 久久久久国产精品麻豆ai换脸| 亚洲一区国产一区| 亚洲午夜免费视频| 亚洲天堂av图片| 亚洲小说春色综合另类电影| 99re热精品| 一本色道精品久久一区二区三区 | 亚洲国产精品免费| 免费视频一区二区三区在线观看| 久久不射2019中文字幕| 性8sex亚洲区入口| 欧美一区二区三区在线观看视频| 亚洲女同在线| 亚洲欧美一区二区在线观看| 亚洲尤物精选| 欧美一区二区三区的| 性18欧美另类| 久久久久国产精品厨房| 久久午夜精品一区二区| 免费精品99久久国产综合精品| 欧美成人a视频| 亚洲欧洲精品成人久久奇米网| 亚洲精品视频在线观看网站| 99视频在线观看一区三区| 国产精品99久久不卡二区| 亚洲女女女同性video| 欧美一级艳片视频免费观看| 久久久亚洲精品一区二区三区| 另类av导航| 欧美色欧美亚洲另类二区| 国产精品乱看| 一色屋精品视频免费看| 亚洲裸体视频| 欧美在线不卡| 亚洲第一伊人| 亚洲一二三级电影| 久久看片网站| 欧美日韩亚洲一区三区| 国产午夜精品一区二区三区视频| 在线看片一区| 亚洲一区二区三区乱码aⅴ| 久久久亚洲国产美女国产盗摄| 欧美激情在线有限公司| 亚洲一区二区三区三| 久久躁日日躁aaaaxxxx| 欧美日韩一区二| 国内在线观看一区二区三区| 日韩一区二区精品| 久久成人亚洲| 日韩一区二区免费高清| 久久久久久久久久久成人| 欧美日韩在线一二三| 好吊色欧美一区二区三区视频| 99国产一区| 免费中文字幕日韩欧美| 亚洲一区二区三区精品动漫| 可以免费看不卡的av网站| 国产精品你懂的在线| 亚洲人成毛片在线播放| 欧美影院成人| 一级日韩一区在线观看| 欧美成人精品一区二区| 国产一区二区三区久久久| 亚洲新中文字幕| 亚洲国内精品在线|