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

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>
            午夜精品一区二区三区在线视 | 欧美在线黄色| 国产精品网站在线观看| 亚洲欧美日韩一区二区| 亚洲自拍16p| 激情久久久久| 亚洲激情av在线| 欧美日韩国内| 欧美一区二区三区喷汁尤物| 久久精品国产久精国产爱| 亚洲国产另类久久久精品极度| 亚洲精品欧美激情| 国产日韩欧美一区在线 | 亚洲欧洲美洲综合色网| 日韩午夜高潮| 国产专区精品视频| 亚洲精品女av网站| 国产精品草莓在线免费观看| 久久久久高清| 欧美三级资源在线| 老司机午夜精品视频| 欧美另类人妖| 久久精品夜夜夜夜久久| 欧美高清视频一区二区| 久久疯狂做爰流白浆xx| 欧美激情综合| 久久久国产视频91| 欧美视频在线观看免费网址| 久热爱精品视频线路一| 欧美亚日韩国产aⅴ精品中极品| 久久香蕉国产线看观看网| 欧美女同视频| 欧美电影在线观看| 国产一区 二区 三区一级| 亚洲精品社区| 亚洲国产精品一区在线观看不卡| 一区二区三区蜜桃网| 最新日韩在线| 久久久97精品| 久久丁香综合五月国产三级网站| 欧美日韩日本视频| 亚洲高清在线播放| 今天的高清视频免费播放成人 | 亚洲一区日韩在线| 日韩视频免费观看高清完整版| 久久久国产午夜精品| 亚洲专区在线| 欧美日一区二区三区在线观看国产免 | 国产精品三级久久久久久电影| 欧美激情在线有限公司| 极品日韩久久| 久久国产精品亚洲va麻豆| 亚洲欧美激情精品一区二区| 欧美啪啪成人vr| 亚洲精品久久在线| 亚洲精品国产视频| 欧美1级日本1级| 麻豆乱码国产一区二区三区| 国产综合色精品一区二区三区| 亚洲欧美国产va在线影院| 午夜精品视频网站| 国产美女精品| 欧美一区二区三区视频在线 | 亚洲国产成人精品久久久国产成人一区 | 久久99在线观看| 久久精品国产免费看久久精品| 国产精自产拍久久久久久| 中日韩美女免费视频网站在线观看| 99视频有精品| 欧美午夜电影网| 亚洲自拍偷拍视频| 久久国产精品免费一区| 国内精品视频在线播放| 久久麻豆一区二区| 欧美福利视频| 一区二区成人精品 | 国产精品主播| 久久国产精品亚洲77777| 欧美jizzhd精品欧美巨大免费| 亚洲大片一区二区三区| 欧美精品一区二区视频| 一本到12不卡视频在线dvd| 午夜精品久久久久影视| 韩国免费一区| 欧美风情在线| 亚洲性图久久| 美女日韩在线中文字幕| 亚洲美女性视频| 国产精品欧美经典| 欧美一级久久| 亚洲激情网站| 午夜久久电影网| 亚洲电影在线播放| 欧美色视频在线| 久久久久久穴| 中文精品在线| 蜜桃av一区二区三区| 亚洲一二三区在线| 在线观看国产欧美| 国产精品成人国产乱一区| 久久精品99国产精品日本| 亚洲精品久久嫩草网站秘色| 久久超碰97人人做人人爱| 亚洲精品欧美精品| 国产伪娘ts一区| 欧美日韩免费观看一区二区三区 | 尤物精品在线| 国产精品黄页免费高清在线观看| 久久久久久久久久久久久女国产乱| 亚洲人精品午夜在线观看| 久久精品亚洲精品国产欧美kt∨| 99re视频这里只有精品| 国产亚洲一本大道中文在线| 欧美日韩国产首页在线观看| 久久夜色精品一区| 亚洲欧美日韩久久精品| 亚洲精品在线看| 亚洲第一精品福利| 久久精品一区二区国产| 亚洲综合另类| 99在线热播精品免费| 亚洲电影第1页| 国产午夜精品美女视频明星a级| 欧美日韩另类一区| 欧美精品三级日韩久久| 久久蜜桃资源一区二区老牛| 欧美中日韩免费视频| 亚洲一区二区在线| 亚洲一区二区在线免费观看视频 | 久久久国产一区二区三区| 亚洲综合色丁香婷婷六月图片| 夜夜爽www精品| 99国产精品久久久久久久久久| 亚洲国产视频直播| 欧美成人精品h版在线观看| 久久综合五月| 老司机午夜精品视频| 久热精品视频| 欧美大片91| 亚洲福利国产| 亚洲激情电影中文字幕| 亚洲国产成人在线| 亚洲国内在线| 亚洲精品一二三| 亚洲狼人综合| 一区二区日韩免费看| 亚洲午夜黄色| 欧美一区二区三区免费大片| 欧美一级大片在线观看| 久久久999精品| 美女在线一区二区| 欧美精品日韩www.p站| 欧美日韩国产成人| 国产精品久久久久影院色老大 | 亚洲经典视频在线观看| 亚洲欧洲一区二区在线播放| 日韩图片一区| 欧美有码在线视频| 毛片av中文字幕一区二区| 欧美精品一区二区视频 | 狠狠色2019综合网| 91久久精品网| 亚洲欧美激情一区| 久久中文在线| 亚洲精品一区二区三区不| 亚洲午夜精品一区二区三区他趣| 欧美亚洲视频在线看网址| 另类亚洲自拍| 国产精品都在这里| 在线 亚洲欧美在线综合一区| 99re66热这里只有精品4| 午夜精品久久久久久久99水蜜桃| 美脚丝袜一区二区三区在线观看 | 欧美高清在线视频| 国产精品毛片在线| 亚洲第一免费播放区| 亚洲一区二区欧美| 免费看黄裸体一级大秀欧美| 亚洲精品资源美女情侣酒店| 欧美一区二区免费观在线| 欧美好吊妞视频| 韩日在线一区| 亚洲欧美日韩成人| 欧美激情视频给我| 午夜电影亚洲| 欧美日本成人| 亚洲电影自拍| 久久精品日韩欧美| 日韩视频在线观看国产| 久久综合色综合88| 国产欧美日韩高清| 亚洲视频二区| 亚洲国产日韩在线一区模特| 欧美在线视频免费| 国产精品青草综合久久久久99| 亚洲毛片一区| 欧美激情区在线播放| 久久蜜桃香蕉精品一区二区三区| 国产老女人精品毛片久久| 中国日韩欧美久久久久久久久|