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

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

c/c++ 柔性數(shù)組

Posted on 2010-02-23 17:09 S.l.e!ep.¢% 閱讀(631) 評論(0)  編輯 收藏 引用 所屬分類: C++
c/c++ 柔性數(shù)組
2009-12-09 09:56
結(jié)構(gòu)體變長的妙用——0個元素的數(shù)組

有時我們需要產(chǎn)生一個結(jié)構(gòu)體,實現(xiàn)了一種可變長度的結(jié)構(gòu)。如何來實現(xiàn)呢?
看這個結(jié)構(gòu)體的定義:
typedef?struct?st_type
{
??? int?nCnt;
??? int?item[0];
}type_a;
(有些編譯器會報錯無法編譯可以改成:)
typedef?struct?st_type
{
??? int?nCnt;
??? int?item[];
}type_a;
這樣我們就可以定義一個可變長的結(jié)構(gòu),用sizeof(type_a)得到的只有4,就是sizeof(nCnt)=sizeof(int)那個0個元素的數(shù)組沒有占用空間,而后我們可以進行變長操作了。
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)];

這樣我們就產(chǎn)生了一個長為100的type_a類型的東西用p->item[n]就能簡單地訪問可變長元素,原理十分簡單,分配了比sizeof(type_a)多的內(nèi)存后int?item[];就有了其意義了,它指向的是int?nCnt;后面的內(nèi)容,是沒有內(nèi)存需要的,而在分配時多分配的內(nèi)存就可以由其來操控,是個十分好用的技巧。
而釋放同樣簡單:
C語言版:
??? free(p);
C++語言版:
??? delete?[]p;

其實這個叫靈活數(shù)組成員(fleible?array?member)C89不支持這種東西,C99把它作為一種特例加入了標(biāo)準(zhǔn)。但是,C99所支持的是incomplete?type,而不是zero?array,形同int?item[0];這種形式是非法的,C99支持的形式是形同int?item[];只不過有些編譯器把int?item[0];作為非標(biāo)準(zhǔn)擴展來支持,而且在C99發(fā)布之前已經(jīng)有了這種非標(biāo)準(zhǔn)擴展了,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里使用兩者之一都能通過編譯并且完成操作,而會產(chǎn)生warning C4200: nonstandard extension

used : zero-sized array in struct/union的警告消息。
而在DEVCPP里兩者同樣可以使用,并且不會有警告消息。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            男男成人高潮片免费网站| 蜜月aⅴ免费一区二区三区| 国产精品理论片在线观看| 欧美日韩国产成人| 国产精品国产三级国产a| 国产精品白丝av嫩草影院| 欧美日韩综合另类| 国产色综合久久| 亚洲国产精品一区二区www| 夜夜嗨av一区二区三区四区 | 欧美国产激情| 欧美日韩八区| 国产欧美日韩一区二区三区在线观看 | 欧美中文字幕视频| 另类春色校园亚洲| 亚洲乱码国产乱码精品精98午夜| 亚洲视频中文| 久久全国免费视频| 欧美日韩精品免费观看| 国产区二精品视| 最近中文字幕日韩精品| 亚洲欧美日韩中文视频| 欧美99久久| 亚洲无玛一区| 亚洲精品一区二区三区婷婷月| 91久久精品一区二区别| 亚洲精选一区| 性欧美videos另类喷潮| 欧美大片一区| 国内精品久久久久久久影视麻豆 | 久久在线免费视频| 亚洲国产成人tv| 亚洲欧美偷拍卡通变态| 欧美激情小视频| 尤物视频一区二区| 欧美一区二区三区视频在线 | 亚洲区一区二| 久久丁香综合五月国产三级网站| 亚洲国内在线| 麻豆91精品91久久久的内涵| 国产视频自拍一区| 亚洲午夜一二三区视频| 欧美国产一区二区| 久久精品在线观看| 国产日韩欧美麻豆| 性久久久久久久久久久久| 亚洲国产日韩在线| 牛牛影视久久网| 亚洲丰满在线| 欧美电影在线播放| 久久资源av| 亚洲成人直播| 麻豆成人精品| 久久se精品一区二区| 国产精品一级在线| 午夜精品久久久久影视| 亚洲一二三四久久| 国产精品资源| 久久激情视频久久| 久久电影一区| 狠狠色香婷婷久久亚洲精品| 久久久综合网站| 久久久久91| 在线免费观看日本一区| 玖玖国产精品视频| 久久夜色撩人精品| 亚洲精品久久久久久久久久久 | 香蕉成人伊视频在线观看| 一区二区日韩欧美| 国产精品无人区| 欧美专区福利在线| 久久综合色8888| 亚洲国产婷婷| 亚洲精品国产精品国自产观看| 欧美国产精品日韩| 亚洲午夜激情在线| 99国产精品国产精品久久| 亚洲国产精品va在线看黑人| 欧美黄色片免费观看| 欧美高清日韩| 亚洲免费人成在线视频观看| 亚洲一级高清| 在线精品视频免费观看| 亚洲国产精品福利| 国产精品美女黄网| 麻豆成人在线播放| 欧美日韩一区二区在线观看| 久久av一区二区| 欧美成人免费全部观看天天性色| 一区二区三区成人精品| 翔田千里一区二区| 9久草视频在线视频精品| 亚洲女性喷水在线观看一区| 影音先锋另类| 一二美女精品欧洲| 亚洲国产一区二区精品专区| 一本久道久久综合婷婷鲸鱼| 国模私拍视频一区| 亚洲精品日韩在线| 伊人伊人伊人久久| 亚洲视频一区在线观看| 亚洲二区在线观看| 午夜在线精品偷拍| 一区二区三区免费看| 久久久久在线观看| 性刺激综合网| 欧美日韩精品久久久| 久久在线免费观看| 国产美女在线精品免费观看| 亚洲激情电影在线| 黄色国产精品一区二区三区| 99热免费精品在线观看| 亚洲国产高清高潮精品美女| 亚洲欧美成人一区二区三区| 一本色道婷婷久久欧美| 久久久av毛片精品| 久久不射网站| 国产精品爽爽爽| 99pao成人国产永久免费视频| 亚洲大胆人体在线| 欧美在线亚洲综合一区| 欧美在线播放一区| 国产精品成人免费精品自在线观看| 欧美黄色影院| 亚洲大片一区二区三区| 欧美一区二区三区婷婷月色 | 亚洲视频在线观看三级| 亚洲精品久久7777| 久久三级福利| 麻豆免费精品视频| 曰韩精品一区二区| 久久米奇亚洲| 美女主播视频一区| 激情91久久| 久久免费国产精品1| 美女视频黄免费的久久| 久久精品亚洲一区二区三区浴池 | 国产欧美日韩不卡| 亚洲一区二区视频在线观看| 亚洲一级一区| 国产精品豆花视频| 亚洲影院免费观看| 欧美在线不卡| 黄色成人av网站| 免费久久99精品国产| 亚洲国内在线| 在线视频亚洲欧美| 国产精品二区影院| 亚洲欧美自拍偷拍| 美女诱惑一区| 亚洲美女在线视频| 国产精品www.| 久久精品国产精品亚洲综合| 欧美www视频| 国产精品99久久久久久人| 国产精品美女| 久久一区激情| 99精品福利视频| 欧美一区二区三区在| 依依成人综合视频| 欧美理论电影在线播放| 亚洲一区激情| 农夫在线精品视频免费观看| 亚洲毛片网站| 国产精品一区二区三区四区 | 久久精品视频在线播放| 亚洲第一成人在线| 亚洲欧美韩国| 亚洲电影观看| 国产精品一区二区你懂的| 久久综合色影院| 亚洲桃色在线一区| 亚洲国产成人精品久久| 亚洲欧美一区二区精品久久久| 在线免费观看日韩欧美| 国产精品国产自产拍高清av王其| 久久精品一级爱片| 一区二区三区高清不卡| 牛牛影视久久网| 欧美在线高清视频| 亚洲免费av片| 狠狠色噜噜狠狠狠狠色吗综合| 欧美日韩亚洲综合| 鲁鲁狠狠狠7777一区二区| 亚洲欧美在线另类| 一区二区三区欧美日韩| 亚洲国产精品成人| 久久手机免费观看| 亚洲欧美激情一区二区| 亚洲精品乱码久久久久久蜜桃91 | 99亚洲一区二区| 一区二区在线不卡| 国产精品毛片在线| 欧美日韩精品一二三区| 美女脱光内衣内裤视频久久影院| 欧美一区二区三区电影在线观看| 一区二区久久久久| 一本色道久久综合精品竹菊| 亚洲国产精品久久久| 你懂的成人av|