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

柔性數組結構成員

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 閱讀(501) 評論(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>
            国产精品区一区二区三| 亚洲欧美日韩国产综合| 亚洲高清自拍| 亚洲精品少妇30p| 亚洲一区在线观看视频 | 欧美成人免费va影院高清| 欧美日韩免费一区| 国产日韩欧美中文| 99视频一区二区三区| 久久九九热免费视频| 亚洲美女色禁图| 久久精品女人| 国产精品有限公司| 99精品国产福利在线观看免费| 久久精品免费电影| 一区二区欧美亚洲| 欧美激情视频在线播放| 激情成人综合网| 久久国产黑丝| 亚洲女人小视频在线观看| 模特精品裸拍一区| 在线 亚洲欧美在线综合一区| 欧美诱惑福利视频| 一区二区三区欧美日韩| 国产精品美女久久久久aⅴ国产馆| 亚洲人成网站影音先锋播放| 乱人伦精品视频在线观看| 亚洲一区二区在线免费观看| 欧美午夜精品久久久久免费视| 亚洲精品一区二区三区婷婷月| 99综合视频| 欧美日韩精品久久久| 亚洲人成欧美中文字幕| aⅴ色国产欧美| 韩国精品久久久999| 久久精品国产第一区二区三区| 久久伊人一区二区| 久久久亚洲精品一区二区三区 | 欧美日韩亚洲不卡| 久久国产高清| 欧美日韩一区在线播放| 久久人体大胆视频| 久久er精品视频| 国内视频精品| 欧美成人精品福利| 免费亚洲电影在线| 久久精品视频在线看| 欧美高清视频www夜色资源网| 亚洲欧洲另类国产综合| 亚洲男人第一网站| 99热精品在线| 久久久精品一区| 久久精品成人一区二区三区| 欧美日本乱大交xxxxx| 亚洲自啪免费| 欧美乱大交xxxxx| 欧美freesex8一10精品| 国产一区二区三区久久久久久久久| 久久久7777| 国产亚洲精品福利| 亚洲一区二区免费视频| 中文久久精品| 久久gogo国模裸体人体| 欧美亚洲在线视频| 美腿丝袜亚洲色图| 亚洲午夜久久久| 久久久精品免费视频| 久久国产精品99国产| 国产精品日本一区二区| 亚洲视频在线观看免费| 亚洲福利视频二区| 久久久久九九视频| 美国十次了思思久久精品导航| 欧美日韩国产另类不卡| 亚洲国产色一区| 99国产精品久久久久久久| 亚洲国产一区二区a毛片| 亚洲影视在线| 久久成人免费视频| 黄色精品在线看| 久久久精品欧美丰满| 久久夜色精品国产欧美乱| 欧美日本韩国一区二区三区| 亚洲国产精品一区二区www| 亚洲日本一区二区| 欧美日韩黄视频| 国产精品99久久不卡二区| 亚洲国内自拍| 欧美精品少妇一区二区三区| 亚洲麻豆视频| 亚洲第一主播视频| 欧美一区二区播放| 亚洲欧美日韩久久精品| 国产麻豆综合| 久热精品在线| 亚洲欧洲一区二区在线观看| 在线播放亚洲| 欧美日本视频在线| 亚洲图片在线观看| 美国成人毛片| 一区二区三区成人| 欧美猛交免费看| 亚洲综合丁香| 欧美1区免费| 亚洲自拍偷拍网址| 一区二区三区在线高清| 欧美日韩妖精视频| 欧美有码在线观看视频| 亚洲精品123区| 久久都是精品| 日韩视频在线你懂得| 国产精品久久久久久久久果冻传媒| 99热在线精品观看| 久久疯狂做爰流白浆xx| 99精品国产在热久久婷婷| 国产精品区一区| 欧美国产精品久久| 欧美亚洲一级| 艳女tv在线观看国产一区| 久久久蜜桃精品| 亚洲愉拍自拍另类高清精品| 在线观看视频一区| 国产精品一区二区在线观看网站| 蜜桃av一区二区三区| 欧美一级夜夜爽| 夜夜爽www精品| 亚洲福利视频免费观看| 夜夜狂射影院欧美极品| 黄色av一区| 国产精品一区二区女厕厕| 欧美大片在线观看一区| 久久久国产精品一区二区三区| 亚洲深夜福利视频| 亚洲欧洲精品天堂一级| 欧美www视频在线观看| 久久久999精品免费| 午夜精品999| 亚洲高清不卡一区| 狠狠色2019综合网| 国产精品亚洲综合久久| 国产精品成人一区二区三区吃奶| 欧美大片一区二区三区| 男男成人高潮片免费网站| 久久久91精品国产一区二区三区 | 欧美成在线观看| 亚洲精品午夜精品| 136国产福利精品导航网址| 国产一区二区三区四区hd| 国产精品自拍视频| 国产欧美一区二区精品性色| 美女黄网久久| 久久综合久久综合这里只有精品| 欧美在线网址| 久久精品国产亚洲精品| 日韩一二三区视频| 亚洲精品中文字幕在线观看| 亚洲美女视频网| 一区二区三区免费网站| 一区二区欧美视频| 亚洲欧美日韩一区二区三区在线观看 | 欧美在线1区| 久久久久久999| 欧美波霸影院| 欧美色网一区二区| 免费不卡视频| 欧美精品一区二区视频| 欧美日韩一区在线视频| 国产精品激情| 韩国一区二区三区美女美女秀| 亚洲第一在线视频| 9久草视频在线视频精品| 亚洲一区精品视频| 欧美一区二区啪啪| 久久亚洲综合网| 亚洲高清网站| 亚洲视频一区二区在线观看| 欧美一区二区三区成人| 裸体一区二区| 欧美日韩亚洲综合在线| 国产一区美女| 亚洲免费av网站| 亚洲精品一区中文| 亚洲影视九九影院在线观看| 欧美一区二区高清在线观看| 蜜臀av性久久久久蜜臀aⅴ| 日韩视频一区二区三区在线播放免费观看| 99精品视频一区二区三区| 欧美在线亚洲| 欧美日韩在线视频观看| 在线观看亚洲视频| 亚洲午夜精品一区二区| 免费国产自线拍一欧美视频| 一本大道久久精品懂色aⅴ| 欧美综合国产精品久久丁香| 欧美女同视频| 亚洲电影在线| 久久久精品国产免费观看同学| 亚洲精品久久7777| 亚洲欧洲日韩在线| 欧美一区中文字幕|