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

柔性數組結構成員

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>
            亚洲欧美日韩专区| 午夜精品一区二区三区四区| 噜噜噜噜噜久久久久久91| 欧美伊久线香蕉线新在线| 国产午夜精品理论片a级探花 | 欧美国产精品| 99日韩精品| 亚洲自拍电影| 国产综合色一区二区三区| 欧美aaa级| 欧美日韩亚洲精品内裤| 欧美专区一区二区三区| 久久久久久999| 正在播放亚洲一区| 午夜日本精品| 亚洲开发第一视频在线播放| 一区二区三区视频在线观看| 国产主播在线一区| 亚洲国产欧美日韩| 国产精品亚洲第一区在线暖暖韩国| 久久成人亚洲| 欧美人与性动交a欧美精品| 性久久久久久| 免费在线成人| 久久精品夜夜夜夜久久| 欧美高清日韩| 久久婷婷综合激情| 欧美日韩精品是欧美日韩精品| 久久不见久久见免费视频1| 六月天综合网| 欧美在线视频播放| 欧美日韩一区二区视频在线 | 亚洲系列中文字幕| 久久精品国内一区二区三区| 亚洲视频专区在线| 久久九九热免费视频| 中日韩男男gay无套| 久久夜色精品亚洲噜噜国产mv| 亚洲欧美日韩精品久久久久| 免费观看成人网| 久久嫩草精品久久久精品一| 国产精品成人免费精品自在线观看| 蜜臀99久久精品久久久久久软件| 国产精品麻豆欧美日韩ww| 亚洲黄色一区| 亚洲国产99| 久久久久青草大香线综合精品| 亚洲女ⅴideoshd黑人| 欧美大片在线看| 欧美成年人视频| 精品成人在线| 久久久精品国产一区二区三区 | 久久精品最新地址| 国产精品久久久久久久浪潮网站 | 久久国产精品久久久久久| 午夜精品久久久久久久白皮肤 | 美日韩精品免费观看视频| 久久精品一区| 国内精品久久久久影院薰衣草| 亚洲无玛一区| 欧美一区激情| 国产亚洲激情视频在线| 欧美亚洲一级片| 久久久久久久综合| 国产一区二区高清不卡| 欧美一区二区福利在线| 久久亚洲私人国产精品va媚药 | 欧美偷拍一区二区| 亚洲少妇最新在线视频| 亚洲免费在线| 国产日本精品| 久久人人爽人人爽爽久久| 欧美成人中文| 亚洲美女黄网| 国产精品豆花视频| 欧美一二区视频| 欧美jizz19性欧美| 艳女tv在线观看国产一区| 欧美日韩国产在线| 亚洲在线播放| 女女同性精品视频| 99re66热这里只有精品4| 欧美亚日韩国产aⅴ精品中极品| 亚洲一区在线看| 欧美freesex8一10精品| 亚洲美女在线观看| 国产久一道中文一区| 久久久欧美精品sm网站| 亚洲精品国精品久久99热| 午夜精品福利视频| 在线观看精品视频| 亚洲先锋成人| 久久久久久久尹人综合网亚洲| 亚洲欧美日韩精品久久久久| 欧美电影在线观看完整版| 亚洲激情网址| 欧美中在线观看| 亚洲国产日韩一级| 国产精品入口日韩视频大尺度| 久久久精品国产99久久精品芒果| 亚洲精品影院在线观看| 久久国产一区| 日韩亚洲欧美成人一区| 国产精品日产欧美久久久久| 美女国内精品自产拍在线播放| 中文有码久久| 亚洲国产视频a| 久久全球大尺度高清视频| av成人动漫| 在线播放豆国产99亚洲| 国产精品女同互慰在线看| 米奇777在线欧美播放| 中文av一区特黄| 亚洲国产高清aⅴ视频| 久久久综合免费视频| 亚洲午夜高清视频| 在线观看一区| 国产人成一区二区三区影院| 欧美日韩一区二区高清| 嫩草成人www欧美| 午夜欧美电影在线观看| 一区二区三区国产精品| 亚洲国产精品久久人人爱蜜臀 | 亚洲黑丝在线| 久久夜色精品国产亚洲aⅴ| 亚洲欧美影院| 在线亚洲+欧美+日本专区| 亚洲欧洲一区二区天堂久久| 雨宫琴音一区二区在线| 韩国欧美国产1区| 国产欧美亚洲视频| 国产精品一区免费视频| 国产精品超碰97尤物18| 欧美日韩一区二区免费视频| 欧美另类极品videosbest最新版本| 久久先锋影音| 麻豆乱码国产一区二区三区| 久久婷婷丁香| 久久一区中文字幕| 麻豆av福利av久久av| 久热精品视频在线观看一区| 久久精品国产2020观看福利| 欧美综合国产精品久久丁香| 欧美专区在线| 久久综合久久美利坚合众国| 免费观看久久久4p| 欧美国产先锋| 欧美色图一区二区三区| 国产精品久久久久999| 国产精品你懂的在线| 国产欧美一区二区精品性色| 国产综合色精品一区二区三区| 狠狠入ady亚洲精品| 亚洲福利视频专区| 亚洲人成网站色ww在线| 一区二区不卡在线视频 午夜欧美不卡在 | 国产伦精品免费视频| 国产日产欧美a一级在线| 国产精品亚洲一区| 国产婷婷色一区二区三区四区| 国内自拍一区| 亚洲精品久久7777| 亚洲在线免费视频| 久久久精品国产一区二区三区| 老司机成人网| 亚洲麻豆一区| 欧美一区激情视频在线观看| 免费成人你懂的| 国产精品福利网站| 精品av久久707| 一区二区三区|亚洲午夜| 欧美一区午夜精品| 欧美成人在线免费视频| 99精品热6080yy久久| 欧美在线观看网站| 欧美金8天国| 国产综合色一区二区三区| 亚洲六月丁香色婷婷综合久久| 午夜国产一区| 亚洲国产岛国毛片在线| 亚洲综合色噜噜狠狠| 久久躁狠狠躁夜夜爽| 欧美午夜精品理论片a级按摩| 黄色成人91| 亚洲欧美激情视频在线观看一区二区三区| 久久精品91久久香蕉加勒比| 亚洲精品亚洲人成人网| 久久国产精品亚洲va麻豆| 欧美日韩国产精品一区| 狠狠色狠狠色综合日日五| 亚洲特级片在线| 亚洲高清在线视频| 欧美在线资源| 国产精品普通话对白| 一本色道久久综合亚洲精品按摩| 毛片精品免费在线观看| 亚洲欧美国产精品va在线观看| 欧美精品国产一区二区| 亚洲春色另类小说| 久久久久国产精品一区三寸|