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

柔性數(shù)組結(jié)構(gòu)成員

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

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

看看 C99 標(biāo)準(zhǔn)中 靈活數(shù)組成員:

結(jié)構(gòu)體變長(zhǎng)的妙用——0個(gè)元素的數(shù)組
有時(shí)我們需要產(chǎn)生一個(gè)結(jié)構(gòu)體,實(shí)現(xiàn)了一種可變長(zhǎng)度的結(jié)構(gòu)。如何來(lái)實(shí)現(xiàn)呢?
看這個(gè)結(jié)構(gòu)體的定義:
typedef struct st_type
{
int nCnt;
int item[0];
}type_a;
(有些編譯器會(huì)報(bào)錯(cuò)無(wú)法編譯可以改成:)
typedef struct st_type
{
int nCnt;
int item[];
}type_a;
這樣我們就可以定義一個(gè)可變長(zhǎng)的結(jié)構(gòu),用sizeof(type_a)得到的只有4,就是sizeof(nCnt)=sizeof(int)那

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

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

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

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

形式是形同int item[];只不過(guò)有些編譯器把int item[0];作為非標(biāo)準(zhǔn)擴(kuò)展來(lái)支持,而且在C99發(fā)布之前已經(jīng)有

了這種非標(biāo)準(zhǔn)擴(kuò)展了,C99發(fā)布之后,有些編譯器把兩者合而為一。
下面是C99中的相關(guān)內(nèi)容:
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里使用兩者之一都能通過(guò)編譯并且完成操作,而會(huì)產(chǎn)生warning C4200: nonstandard extension 

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

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


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


導(dǎo)航

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

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆檔案

收藏夾

同行

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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爱| 一本一道久久综合狠狠老精东影业 | 亚洲一区综合| 亚洲手机成人高清视频| 国产精品久久久久久影院8一贰佰| 亚洲天堂偷拍| 亚洲欧美日韩在线观看a三区| 国产精品国产a| 篠田优中文在线播放第一区| 亚洲欧美日韩高清| 国产自产v一区二区三区c| 免费中文字幕日韩欧美| 欧美77777| 亚洲一区二区三区精品在线| 亚洲一区欧美| 在线电影国产精品| 亚洲日本aⅴ片在线观看香蕉| 欧美黄色精品| 新67194成人永久网站| 欧美一区二区三区婷婷月色| 亚洲大胆在线| 亚洲午夜av在线| 在线看欧美视频| 亚洲最快最全在线视频| 国产日产亚洲精品系列| 欧美福利电影网| 国产精品久久久久久久久久直播| 久久精品国产成人| 欧美激情一区二区三区在线视频| 亚洲视频日本| 美女视频一区免费观看| 亚洲欧美中文日韩在线| 免费成人av在线| 久久狠狠久久综合桃花| 欧美精品一区视频| 久久中文字幕导航| 国产精品www网站| 欧美激情欧美狂野欧美精品| 国产精品九九| 亚洲国产精品日韩| 激情婷婷亚洲| 午夜精品一区二区三区在线| 日韩午夜高潮| 久热精品在线视频| 久久精品官网| 国产精品系列在线播放| 亚洲精品一区在线观看| 亚洲国产精品成人综合| 欧美亚洲免费电影| 亚洲欧美影院| 欧美日韩一本到| 亚洲国产电影| 亚洲第一黄网| 久久久久国产精品一区| 欧美一区免费视频| 国产精品久久久一区麻豆最新章节| 欧美+日本+国产+在线a∨观看| 国产精品腿扒开做爽爽爽挤奶网站| 91久久线看在观草草青青| 亚洲黄色免费| 美日韩精品视频| 每日更新成人在线视频| 国产一区视频在线观看免费| 亚洲午夜在线观看视频在线| 亚洲中字在线| 国产精品久久久久久久午夜| 亚洲毛片播放| 中文网丁香综合网| 欧美日韩一区二区免费在线观看| 亚洲国产精品成人va在线观看| 亚洲激情视频网| 欧美黄色网络| 99综合电影在线视频| 亚洲无人区一区| 欧美性猛片xxxx免费看久爱| 一区二区三区高清不卡| 亚洲男同1069视频| 国产精品一区二区在线观看| 亚洲一区二区av电影| 欧美在线free| 在线精品视频一区二区| 免费视频久久| 亚洲精品在线视频| 亚洲综合色婷婷| 国产婷婷色一区二区三区| 欧美一区二区高清| 欧美黑人在线播放| 亚洲小说春色综合另类电影| 国产精品网站视频| 久久蜜桃香蕉精品一区二区三区| 欧美成人一区二区在线| 99精品99| 国产色婷婷国产综合在线理论片a| 欧美在线一级视频| 亚洲精品1区2区| 新67194成人永久网站| 激情成人av在线| 欧美久久久久| 午夜精品一区二区三区四区| 欧美激情一区二区三区全黄| 亚洲视频免费看| 在线观看日韩专区| 欧美日韩在线播放一区| 欧美一区二区在线免费播放| 亚洲国产免费| 久久精品人人做人人综合| 亚洲人成网站777色婷婷| 国产精品久久福利| 蜜桃久久av一区| 亚洲欧美中文在线视频| 欧美高清视频| 久久成人在线| 亚洲午夜精品久久久久久app| 国产日韩在线播放| 欧美性片在线观看| 免费观看亚洲视频大全| 亚洲欧美在线免费| 日韩视频在线观看一区二区| 久久综合九色九九| 午夜一级久久| 99在线精品观看| 在线日本成人| 国产日韩欧美一区二区三区在线观看 | 免费亚洲一区| 欧美在线观看视频| 亚洲图片在线| 亚洲九九精品| 亚洲高清久久久| 国产一区二三区| 国产欧美丝祙| 国产精品v片在线观看不卡| 欧美二区在线| 久久久99爱| 久久黄色小说| 久久精品理论片| 欧美一区二区黄色| 午夜亚洲福利| 午夜精品美女久久久久av福利| 日韩午夜电影| 99re6热只有精品免费观看| 亚洲黄色免费| 亚洲激情综合| 亚洲人成在线观看一区二区| 欧美激情国产日韩| 亚洲高清资源| 亚洲欧洲在线一区| 99www免费人成精品| 99国内精品久久| 中文精品99久久国产香蕉| 亚洲午夜激情| 欧美一二三区在线观看| 久久爱www.| 久久综合久色欧美综合狠狠 | 一区二区三区久久久| 91久久夜色精品国产九色| 亚洲欧洲三级电影| 亚洲日本一区二区三区| 亚洲裸体视频| 日韩午夜免费视频| 一区二区三区日韩欧美| 中文一区二区在线观看| 亚洲欧美成人| 亚洲一区二区三区久久| 亚洲综合久久久久| 亚洲精品欧美日韩专区| 99精品99| 性欧美暴力猛交69hd| 午夜精品久久久久久久蜜桃app| 亚洲亚洲精品在线观看| 午夜免费日韩视频| 欧美一二三区在线观看| 欧美一区二区视频97| 午夜久久黄色| 亚洲无线视频| 欧美伊久线香蕉线新在线| 小嫩嫩精品导航| 久久在线免费观看视频| 亚洲精品欧美精品| 亚洲一卡久久| 久久国产一二区| 久久久国产精品亚洲一区| 久久综合久色欧美综合狠狠| 欧美成人综合在线| 国产精品一二| 亚洲美女福利视频网站| 亚洲午夜一二三区视频| 久久精品国内一区二区三区| 亚洲免费成人| 久久久91精品国产一区二区三区| 久久久久九九九九| 欧美激情精品久久久| 亚洲天堂免费观看| 久久偷窥视频| 欧美午夜美女看片| 亚洲日本aⅴ片在线观看香蕉| 亚洲欧美国产一区二区三区| 久久九九免费| 欧美激情视频一区二区三区在线播放| 亚洲永久免费av| 欧美电影资源|