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

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.¢% 閱讀(634) 評論(0)  編輯 收藏 引用 所屬分類: C++
c/c++ 柔性數(shù)組
2009-12-09 09:56
結構體變長的妙用——0個元素的數(shù)組

有時我們需要產(chǎn)生一個結構體,實現(xiàn)了一種可變長度的結構。如何來實現(xiàn)呢?
看這個結構體的定義:
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個元素的數(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把它作為一種特例加入了標準。但是,C99所支持的是incomplete?type,而不是zero?array,形同int?item[0];這種形式是非法的,C99支持的形式是形同int?item[];只不過有些編譯器把int?item[0];作為非標準擴展來支持,而且在C99發(fā)布之前已經(jīng)有了這種非標準擴展了,C99發(fā)布之后,有些編譯器把兩者合而為一。

下面是C99中的相關內(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>
            国产精品久久久久久久久久尿| 亚洲精品视频一区| 永久免费精品影视网站| 六月天综合网| 日韩一二三区视频| 午夜欧美精品| 在线观看亚洲| 欧美精品1区| 亚洲欧美日韩另类| 免费国产一区二区| 在线视频中文亚洲| 国产欧美亚洲一区| 免费成人高清| 亚洲一区二区不卡免费| 免费在线播放第一区高清av| 日韩视频二区| 国产一区自拍视频| 久久国产欧美精品| 日韩天堂av| 国产欧美一区视频| 欧美成人中文字幕| 午夜日韩视频| 亚洲精品一区二区三区福利| 亚洲午夜精品网| 在线电影国产精品| 国产精品大片wwwwww| 久久电影一区| 中国成人黄色视屏| 亚洲二区精品| 久久国产精品一区二区三区| 日韩亚洲国产欧美| 激情亚洲网站| 国产精品网红福利| 欧美精品免费播放| 久久另类ts人妖一区二区| 亚洲另类在线视频| 欧美黄色aa电影| 久久精品国产精品亚洲综合| 99av国产精品欲麻豆| 激情五月婷婷综合| 国产精品日韩久久久| 欧美激情一区二区三区蜜桃视频| 久久狠狠亚洲综合| 亚洲欧美日韩国产精品| 亚洲伦理在线免费看| 欧美成人一区二区三区片免费| 午夜国产精品视频免费体验区| 亚洲麻豆国产自偷在线| 在线成人黄色| 黄色一区二区三区| 国产日韩一区二区三区在线| 国产精品久久久久久亚洲调教 | 欧美一区二区三区喷汁尤物| 亚洲精品在线观看免费| 亚洲国产高清aⅴ视频| 狠狠色丁香久久婷婷综合_中| 国产精品麻豆va在线播放| 欧美日韩国产一中文字不卡| 欧美a级片网| 欧美 亚欧 日韩视频在线| 久久免费高清| 久久综合久色欧美综合狠狠 | 99视频超级精品| 亚洲黑丝在线| 在线精品观看| 在线精品视频在线观看高清| 激情另类综合| 尤物九九久久国产精品的特点| 国产视频久久网| 国产综合色产在线精品| 国产在线乱码一区二区三区| 国产亚洲福利社区一区| 国语精品中文字幕| 在线观看国产精品淫| 亚洲电影免费观看高清| 亚洲国产欧美一区| 99一区二区| 亚洲资源在线观看| 久久成人羞羞网站| 久久综合狠狠综合久久激情| 免费成人黄色片| 亚洲盗摄视频| 日韩视频一区| 亚洲欧美精品在线观看| 久久精品亚洲| 欧美激情成人在线视频| 欧美色图首页| 国产午夜亚洲精品羞羞网站| 老司机午夜精品视频在线观看| 亚洲私拍自拍| 欧美一区二区私人影院日本| 久久免费精品视频| 亚洲黄一区二区三区| 9国产精品视频| 亚洲女同性videos| 久久久国产精品一区| 农夫在线精品视频免费观看| 欧美日韩免费视频| 国产精品一区免费视频| 一区视频在线| 亚洲性夜色噜噜噜7777| 久久久久久亚洲精品杨幂换脸| 欧美二区在线观看| 亚洲视频一区二区| 久久久久久久综合日本| 欧美日韩精品在线| 国产日韩精品视频一区| 亚洲韩日在线| 欧美一区二区三区在线视频 | 亚洲精品日韩在线观看| 亚洲欧美网站| 欧美刺激午夜性久久久久久久| 国产精品卡一卡二| 最新国产乱人伦偷精品免费网站| 亚洲欧美高清| 亚洲国产精品免费| 亚洲免费视频观看| 欧美精品一区在线发布| 国内自拍视频一区二区三区| 日韩午夜av| 老司机久久99久久精品播放免费 | avtt综合网| 久久久噜噜噜久久| 国产精品亚洲第一区在线暖暖韩国| 激情久久婷婷| 小黄鸭精品密入口导航| 亚洲人成在线观看一区二区| 久久成人人人人精品欧| 国产精品激情| 一本不卡影院| 亚洲大胆人体视频| 久久成人精品视频| 国产精品自拍网站| 中文欧美字幕免费| 91久久精品一区| 老司机免费视频一区二区| 国产伦精品一区二区三区照片91 | 国产欧美综合一区二区三区| 亚洲精品视频在线观看免费| 久久综合综合久久综合| 亚洲影视在线| 欧美先锋影音| 亚洲深夜福利网站| 亚洲国产毛片完整版| 久久视频一区| 伊人久久大香线蕉av超碰演员| 久久精品首页| 亚洲女爱视频在线| 国产精品久久久久久久一区探花| 在线视频精品| 亚洲三级视频在线观看| 欧美激情一区二区三区在线视频观看| 亚洲国产精品一区二区www| 久久综合亚州| 久久免费视频一区| 亚洲第一视频网站| 欧美3dxxxxhd| 欧美成人dvd在线视频| 亚洲二区精品| 亚洲国产精品成人精品| 久久亚洲二区| 亚洲人成在线播放网站岛国| 亚洲电影中文字幕| 欧美精品一区二区视频| av不卡在线看| 亚洲少妇最新在线视频| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲一区二区三区四区五区午夜| 一本大道av伊人久久综合| 国产精品乱人伦中文| 欧美在线视频免费观看| 欧美中文字幕在线视频| 一色屋精品视频在线观看网站| 免费观看久久久4p| 欧美精品一级| 午夜精品一区二区三区电影天堂| 亚洲欧美日韩精品久久亚洲区| 国产一级久久| 亚洲第一成人在线| 欧美视频在线观看| 久久精品日产第一区二区三区| 久久久中精品2020中文| 亚洲精品四区| 亚洲女同同性videoxma| 在线观看欧美成人| 亚洲美女视频在线免费观看| 国产精品视频免费一区| 久久在线免费观看视频| 欧美国产精品| 欧美专区中文字幕| 裸体素人女欧美日韩| 亚洲一区免费| 久久久综合香蕉尹人综合网| 亚洲日本无吗高清不卡| 亚洲尤物在线| 亚洲欧洲一区| 性感少妇一区| 一本久久综合| 久久精品99无色码中文字幕| 一区二区三区国产在线|