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

柔性數組結構成員

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 閱讀(489) 評論(0)  編輯 收藏 引用

導航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(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>
            久久久99国产精品免费| 亚洲欧美在线aaa| 美玉足脚交一区二区三区图片| 国产区亚洲区欧美区| 欧美亚洲视频在线看网址| 性欧美精品高清| 激情六月综合| 亚洲人成网站影音先锋播放| 欧美黄色免费| 亚洲欧美综合另类中字| 性色一区二区三区| 亚洲国产欧美另类丝袜| 亚洲国产专区| 国产精品久久波多野结衣| 欧美中文字幕在线视频| 狼人社综合社区| 亚洲午夜av电影| 欧美一级精品大片| 亚洲国产导航| 制服丝袜激情欧洲亚洲| 国产婷婷一区二区| 欧美韩国在线| 国产精品一区二区在线观看| 麻豆九一精品爱看视频在线观看免费| 免费观看成人www动漫视频| 亚洲午夜小视频| 久久精品视频一| 中文精品99久久国产香蕉| 欧美亚洲综合另类| av成人动漫| 久久经典综合| 亚洲欧美日韩精品久久| 美女视频黄免费的久久| 亚洲欧美日韩在线不卡| 欧美成人有码| 久久久久久久久一区二区| 欧美日本国产一区| 卡通动漫国产精品| 国产精品伦理| 亚洲人成网站在线播| 国产亚洲毛片| 亚洲婷婷在线| 一本色道久久综合一区| 久久婷婷蜜乳一本欲蜜臀| 性欧美1819sex性高清| 欧美激情精品久久久久久黑人| 久久精品视频va| 国产精品亚洲а∨天堂免在线| 亚洲国产另类久久久精品极度| 激情婷婷亚洲| 久久av二区| 久久精品99国产精品日本| 国产精品久久国产愉拍 | 国产一区香蕉久久| 亚洲一级黄色av| 一本久久知道综合久久| 一区二区三区精品国产| 欧美成人自拍| 亚洲观看高清完整版在线观看| 国内成人在线| 久久精品中文| 久久综合五月| 在线观看亚洲视频啊啊啊啊| 久久成人国产精品| 久久久久久久久久看片| 韩国免费一区| 久久久久国产一区二区三区| 欧美一区二区免费视频| 国产毛片一区| 午夜精品久久久久久久99樱桃| 亚洲欧美一区二区视频| 国产精品一区二区三区成人| 亚洲综合电影一区二区三区| 性欧美1819性猛交| 国产一区二区久久久| 久久久久九九九九| 亚洲第一主播视频| 亚洲精品视频在线播放| 欧美日韩精品久久久| 在线视频精品一区| 新67194成人永久网站| 国产午夜精品一区二区三区视频 | 欧美波霸影院| 亚洲精品国久久99热| 欧美日韩国产一级| 亚洲一区二区黄色| 久热国产精品视频| 99xxxx成人网| 国产日韩欧美在线播放| 久久一二三四| 一区二区三区国产在线观看| 久久精品一区| 亚洲精品久久嫩草网站秘色 | 欧美精品日韩精品| 在线亚洲一区二区| 美女主播视频一区| 99国产精品国产精品毛片| 国产精品久久久久久亚洲调教| 欧美一区二区性| 亚洲高清成人| 久久国产精品久久久久久久久久| 在线观看一区视频| 国产精品swag| 免费日韩成人| 亚洲男人的天堂在线观看| 女人色偷偷aa久久天堂| 亚洲综合日韩| 亚洲欧洲一区二区三区久久| 国产精品卡一卡二| 欧美高清成人| 久久成人羞羞网站| 在线视频免费在线观看一区二区| 蜜桃av一区| 欧美亚洲专区| 亚洲午夜黄色| 亚洲国产日韩欧美一区二区三区| 国产精品久久久久久户外露出| 老司机精品导航| 欧美一级一区| 亚洲午夜伦理| 日韩午夜精品视频| 欧美国产激情二区三区| 久久国产福利| 亚洲一区三区视频在线观看| 亚洲日本国产| 在线精品视频一区二区| 国产欧美日韩一区| 欧美视频网站| 欧美日韩精品免费在线观看视频 | 日韩亚洲欧美一区二区三区| 欧美不卡视频一区发布| 久久色在线观看| 欧美有码视频| 欧美在线黄色| 久久精品视频网| 羞羞答答国产精品www一本| 在线综合+亚洲+欧美中文字幕| 亚洲日本免费电影| 亚洲国产欧美一区| 亚洲国产成人在线播放| 在线看片日韩| 亚洲国产免费看| 亚洲茄子视频| 亚洲人成在线影院| 日韩亚洲欧美一区| 夜夜嗨av一区二区三区中文字幕 | 久久久久久一区二区| 久久精品中文字幕一区| 久久精品国产96久久久香蕉| 久久精品国产999大香线蕉| 久久精品理论片| 久热精品视频在线观看| 老司机精品视频网站| 欧美jizz19性欧美| 亚洲高清av| 日韩视频中午一区| 中文精品在线| 欧美有码在线观看视频| 久久精品日韩| 欧美成人亚洲成人日韩成人| 欧美日韩一区在线播放| 国产精品视频yy9099| 国产一区二区三区高清在线观看| 韩日精品在线| 亚洲精品欧美在线| 亚洲自拍三区| 久久亚洲色图| 亚洲精品1区| 亚洲直播在线一区| 久久九九精品99国产精品| 欧美xx69| 国产精品美女www爽爽爽视频| 国产亚洲电影| 亚洲午夜一区二区| 激情亚洲成人| 欧美高清在线播放| 欧美三级电影精品| 香蕉av777xxx色综合一区| 欧美国产精品日韩| 欧美一区二区三区视频免费播放| 亚洲激情国产| 欧美成在线观看| 在线日韩电影| 欧美成人a视频| 久久国产精品99国产| 国产视频在线观看一区二区| 午夜精品在线| 午夜亚洲一区| 国产日韩精品综合网站| 午夜综合激情| 亚洲欧美日韩国产一区二区三区 | 久久综合电影| 亚洲成在线观看| 欧美国产高潮xxxx1819| 美女视频黄免费的久久| 亚洲欧洲日本mm| 亚洲精品小视频| 国产精品豆花视频| 午夜精品久久久久久久| 亚洲欧美国产日韩天堂区|