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

柔性數(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>
            亚洲精品综合| 91久久精品国产91久久性色| 亚洲女同在线| 亚洲一区日本| 国产综合网站| 欧美激情一区在线| 欧美日韩一级黄| 欧美伊人久久| 噜噜噜91成人网| 亚洲综合不卡| 欧美自拍偷拍午夜视频| 最新高清无码专区| 一本色道久久综合亚洲精品不| 国产精品一区=区| 欧美3dxxxxhd| 国产精品久久久久久五月尺| 久久天天狠狠| 欧美日韩一区二区在线播放| 久久久7777| 欧美精品久久久久久久| 欧美怡红院视频一区二区三区| 久久躁狠狠躁夜夜爽| 亚洲一区二区三区精品视频 | 日韩亚洲在线| 午夜日韩电影| 99视频有精品| 久久久久久9| 亚洲一区激情| 久久艳片www.17c.com| 亚洲欧美日韩国产中文| 女主播福利一区| 久久超碰97人人做人人爱| 欧美另类99xxxxx| 蜜臀av性久久久久蜜臀aⅴ| 国产精品国产成人国产三级| 免费短视频成人日韩| 国产精品视频免费观看www| 亚洲精品1区| 国产一区二区三区久久| 中文亚洲免费| 一区二区三区.www| 免费欧美日韩| 男人插女人欧美| 黑人极品videos精品欧美裸| 亚洲午夜影视影院在线观看| 99视频一区二区| 欧美成人亚洲成人日韩成人| 玖玖精品视频| 黑人操亚洲美女惩罚| 欧美一级大片在线免费观看| 午夜精品一区二区三区在线视 | 久久久99久久精品女同性| 性欧美18~19sex高清播放| 欧美特黄一级大片| 亚洲作爱视频| 亚洲自啪免费| 国产精品久久久久久影院8一贰佰| 亚洲人成网站色ww在线| 亚洲人成毛片在线播放| 欧美成人一区在线| 亚洲国产成人精品久久| 亚洲啪啪91| 欧美国产日产韩国视频| 亚洲精品一区二区三| 亚洲最黄网站| 国产精品精品视频| 亚洲一区二区三区乱码aⅴ| 午夜日韩电影| 国产一区在线看| 老司机一区二区三区| 欧美激情日韩| 一区二区欧美在线| 国产精品女主播在线观看| 亚洲尤物在线| 久久一区免费| 亚洲麻豆一区| 国产精品免费观看视频| 欧美伊人精品成人久久综合97| 久久精品卡一| 亚洲欧洲久久| 国产精品v一区二区三区| 亚洲欧美在线免费| 欧美成人一区二区三区在线观看| 亚洲区在线播放| 欧美吻胸吃奶大尺度电影| 亚洲专区欧美专区| 鲁大师成人一区二区三区| 亚洲美女av黄| 国产精品一区二区三区成人| 久久久久亚洲综合| 99精品免费网| 美国十次了思思久久精品导航| 亚洲黄一区二区三区| 国产精品捆绑调教| 久久亚洲图片| 一级日韩一区在线观看| 久久久综合网| 亚洲夜间福利| 在线免费高清一区二区三区| 欧美午夜电影在线观看| 久久夜色精品国产噜噜av| av72成人在线| 欧美高清在线精品一区| 欧美一区二区三区四区夜夜大片 | 国产精品久久久久9999| 久久人人97超碰人人澡爱香蕉| 亚洲免费大片| 免费看的黄色欧美网站| 亚洲欧美国产另类| 亚洲美女av网站| 一区免费在线| 国产精品欧美激情| 欧美日韩情趣电影| 麻豆av一区二区三区久久| 性欧美8khd高清极品| 日韩午夜av| 亚洲国产视频一区| 久久夜色精品国产| 久久精品盗摄| 午夜精品短视频| 亚洲小视频在线观看| 亚洲精品久久久久中文字幕欢迎你 | 国产免费一区二区三区香蕉精| 欧美精品一区二区三区蜜桃| 久久精品主播| 欧美一区二区视频在线观看2020 | 亚洲国产91色在线| 欧美a级理论片| 久久综合影视| 久久久人成影片一区二区三区| 午夜精品久久久久久久99热浪潮 | 亚洲视频第一页| 日韩一区二区精品葵司在线| 亚洲国产午夜| 亚洲国产中文字幕在线观看| 亚洲电影视频在线| 在线观看久久av| 亚洲国产精品va在线看黑人动漫| 狠狠色综合网| 在线观看一区二区视频| 影音先锋日韩资源| 亚洲高清色综合| 91久久精品久久国产性色也91| 亚洲福利视频二区| 亚洲人成久久| 亚洲午夜精品一区二区三区他趣| 99精品视频一区| 亚洲天堂免费观看| 香蕉久久夜色精品国产| 久久精品女人| 蜜臀av一级做a爰片久久| 欧美激情区在线播放| 亚洲黄色有码视频| 日韩亚洲欧美一区二区三区| 一区二区三区四区五区精品视频| 99视频国产精品免费观看| 一区二区三区黄色| 亚洲男人的天堂在线| 欧美在线91| 欧美高清在线精品一区| 欧美视频在线一区| 国产女主播一区| 在线免费观看视频一区| 亚洲看片网站| 性亚洲最疯狂xxxx高清| 可以免费看不卡的av网站| 亚洲欧洲三级| 性欧美暴力猛交另类hd| 免费精品99久久国产综合精品| 欧美日韩四区| 狠狠色综合色区| 中文日韩在线| 久久亚洲精品欧美| 夜夜爽99久久国产综合精品女不卡| 性欧美超级视频| 欧美激情在线狂野欧美精品| 国产日韩亚洲欧美| 一区二区欧美亚洲| 久久综合色天天久久综合图片| 亚洲日本成人| 久久久视频精品| 国产精品拍天天在线| 亚洲国产欧美一区二区三区同亚洲| 亚洲专区一区二区三区| 欧美高清视频免费观看| 亚洲一区二区在线视频| 欧美韩日亚洲| 亚洲成人在线网| 欧美一区二区在线播放| 亚洲精品在线看| 蜜臀久久99精品久久久画质超高清| 国产精品久久久久久户外露出| 亚洲国产欧美不卡在线观看| 久久精品视频99| 一本不卡影院| 欧美日韩免费精品| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲午夜精品一区二区| 欧美精品一区三区| 亚洲国产欧美在线|