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

Benjamin

靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
隨筆 - 398, 文章 - 0, 評論 - 196, 引用 - 0
數據加載中……

string和memset

string類是C++中專門處理字符串的類,它的實際上是basic_string<char>的一個typedef。它有四個跌代器:
typedef std::reverse_iterator<iterator> reverse_iterator;
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
typedef _String_iterator<_Elem, _Traits, _Alloc> iterator;//models random iterator
typedef _String_const_iterator<_Elem, _Traits, _Alloc> const_iterator;////models random iterator//models random iterator
一個靜態常量:static const size_typed npos = -1;
basic_string模板定義的類型:
typedef    traits                                                         traits_type;        //某個具體類型的模板參數                       
typedef    typename traits::char_type                         value_type;      
typedef   Allocator                                                   allocator_type;
typedef   typename Allocator::size_type                    size_type;
typedef   typename Allocator::difference_type           difference_type;
typedef   typename Allocator::reference                    reference;
typedef   typename Allocator::const_reference          const_reference;
typedef   typename Allocator::pointer                        pointer;
typedef   typename Allocator::const_pointer              const_pointer;
針對不同的廠商的實現是不同的。
memset可以用與string類嗎?有網友提出以下問題:
 1 void fun()
 2 {
 3     string temp;
 4     char buff[] = "123456789";
 5     while(true)
 6     {
 7         
 8         memset(&temp, '\0'sizeof(string));
 9         temp = buff;
10     }
11 }
上面的代碼安全性如何?一直想寫篇文章表述一下這個問題,談談自己的看法。最近在項目大量的用到STL,出現了不少問題,上面的問題就是其中之一,上面的代碼肯定不安全。while循環只是放大一下執行效果。
在VC的string的實現上,有個uion _bxty
{ // storage for small buffer or pointer to larger one
_elem _buf[_buf_size];
_elem *_ptr;
} _bx;
而_buf_size值為:
enum
{ // length of internal buffer, [1, 16]
_buf_size = 16 / sizeof (_elem) <1 ? 1
: 16 / sizeof(_elem)};
在模板參數_elem為char時, _buf_size為16, 而union _bx里保存的是一個字符串指針或一個字符緩沖大小, 當字符串長度小于等于15(別忘了字符串還有個0結尾的字符)不必額外分配內存而是直接使用string對象本身已經分配的內存, 否則使用allocator來分配一塊新的內存以保存字符串. 而string不帶任何參數的構造函數調用了_tidy函數, 在這個函數中會設置string的成員變量_myres(預留空間大小)為15(_buf_size-1), 如果將memset用于string,memset就會于破壞其內部變量_myres的值, 導致在之后對string對象進行操作時, 即時字符串大小不大于15也會引發內存分配的動作, 而這實際上是不應該發生的(應該直接使用string本身的內存而不是新申請內存塊), 于是就有了在字符串大小小于16字節時, 分配的內存沒有釋放的結果. 這樣做的結果是會導致內存泄露。

posted on 2009-05-16 23:24 Benjamin 閱讀(2684) 評論(0)  編輯 收藏 引用 所屬分類: 泛型編程

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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ⅴ国产紧身牛仔裤| 亚洲欧美在线磁力| 久久久久.com| 欧美v日韩v国产v| 亚洲国产成人精品久久| 91久久线看在观草草青青| 亚洲国产欧美久久| 一区二区三欧美| 欧美一区二区免费观在线| 先锋影音一区二区三区| 久久久久久久尹人综合网亚洲| 亚洲欧美资源在线| 久久一区中文字幕| 欧美喷水视频| 伊甸园精品99久久久久久| 亚洲国产老妈| 亚洲看片免费| 国产亚洲精品久久久久婷婷瑜伽 | 国产精品www| 久久国产精品99国产精| 久久久国产成人精品| 国产日韩一区二区三区| 亚洲免费在线播放| 亚洲精品国产精品国自产观看浪潮| 欧美女激情福利| 1024国产精品| 亚洲第一区在线| 久久综合999| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲精品美女在线| 久久激情一区| 亚洲砖区区免费| 国产综合精品一区| 亚洲第一黄色| 亚洲视频一区在线观看| 在线观看91精品国产入口| 欧美激情在线播放| 亚洲精选在线| 亚洲一区免费观看| 一本久久青青| 欧美va天堂在线| 久久偷看各类wc女厕嘘嘘偷窃| 欧美成人午夜激情| 乱人伦精品视频在线观看| 国产精品v欧美精品v日本精品动漫| 免费在线国产精品| 国产香蕉久久精品综合网| 国产精品视频精品| 免费欧美视频| 亚洲国产免费看| 男人插女人欧美| 亚洲欧美日韩在线高清直播| 久久久夜色精品亚洲| 欧美日韩一区二区高清| 在线日韩av永久免费观看| 亚洲一区二区免费在线| 日韩视频一区二区三区在线播放免费观看| 狂野欧美激情性xxxx欧美| 国产视频一区在线| 欧美一区二区免费| 久久久91精品| 一区二区久久久久| 妖精视频成人观看www| 欧美性片在线观看| 欧美精品在线视频观看| 亚洲国产精品久久久久秋霞不卡| 欧美激情精品久久久| 欧美日韩网址| 快射av在线播放一区| 亚洲在线观看视频网站| 欧美四级伦理在线| 午夜精品久久久| 亚洲午夜精品一区二区| 亚洲精品乱码久久久久久| 99精品热视频| 国产精品永久在线| 欧美bbbxxxxx| 亚洲第一精品夜夜躁人人爽| 国产精品日韩在线| 亚洲精品你懂的| 亚洲第一页在线| 亚洲国产日韩欧美在线动漫| 欧美精品亚洲一区二区在线播放| 性做久久久久久久久| 在线不卡中文字幕| 欧美国产日本| 欧美色中文字幕| 欧美伊人久久久久久久久影院| 亚洲欧美日本日韩| 亚洲国产成人av| 亚洲美女尤物影院| 国产日产欧美a一级在线| 久热精品视频在线观看| 欧美日韩国产系列| 久久精品欧美日韩| 麻豆国产精品777777在线| 一本色道久久加勒比精品| 午夜精品福利电影| 亚洲精品久久久久久久久久久| 在线中文字幕一区| 亚洲国产精品va在线观看黑人| 一区二区日韩伦理片| 在线精品一区二区| 亚洲一二三区精品| 亚洲伦理在线| 久久成人一区二区| 亚洲自拍三区| 免费国产一区二区| 久久成人免费电影| 欧美日韩国产首页| 久久综合中文字幕| 国产精品视屏| 亚洲理论在线观看| 亚洲国产中文字幕在线观看| 亚洲欧美日韩精品久久久| 一本在线高清不卡dvd| 国产精品乱码妇女bbbb| 亚洲一区二区三区中文字幕在线| 亚洲免费婷婷| 国产精品99久久久久久久vr| 久久久国产精品一区二区三区| 亚洲一区二区综合| 欧美日韩国产a| 亚洲黄色成人| 亚洲福利在线观看| 久久成人免费日本黄色| 欧美一区免费视频| 国产精品欧美日韩久久| 亚洲精品美女在线观看| 亚洲国产精品www| 久久久久久9| 久久综合一区二区| 极品尤物久久久av免费看| 香蕉久久夜色精品| 欧美在线免费视频| 国产日韩在线看| 欧美一级大片在线观看| 欧美在线www| 国内成人精品2018免费看| 欧美影院视频| 免费日韩av片| 亚洲美女黄色| 欧美日本三区| 亚洲少妇中出一区| 欧美一级成年大片在线观看| 国产日韩欧美一区二区三区在线观看| 在线视频一区观看| 先锋影音国产精品| 国产一区二区三区视频在线观看| 午夜精品成人在线| 另类尿喷潮videofree| 亚洲国产日韩欧美在线动漫| 六月婷婷一区| 日韩午夜剧场| 欧美亚洲视频在线看网址| 国产偷自视频区视频一区二区| 久久精品亚洲一区| 亚洲第一网站免费视频| 一区二区三区久久网| 国产九区一区在线| 久久亚洲精品一区二区| 亚洲经典自拍| 欧美一级视频免费在线观看| 在线观看一区二区视频| 欧美精品亚洲精品| 亚洲欧美日韩成人| 亚洲国产精品电影| 性欧美大战久久久久久久免费观看 | 国内揄拍国内精品少妇国语| 久久成人久久爱| 亚洲激情女人| 校园春色国产精品| 亚洲国产欧美一区| 国产精品久久久久久久久搜平片| 欧美在线视频一区二区三区| 亚洲第一毛片| 久久精品国产亚洲一区二区三区 | 亚洲永久免费视频| 激情国产一区| 欧美一区二区三区四区夜夜大片| 欧美揉bbbbb揉bbbbb| 欧美一区二区福利在线| 亚洲黄色在线| 久久久一本精品99久久精品66| 亚洲理伦在线| 精品999成人| 国产精品xvideos88| 久久视频精品在线| 午夜精品久久99蜜桃的功能介绍| 亚洲黄色影院| 欧美成人一区二区三区在线观看 | 一区在线播放| 国产精品日韩在线| 欧美日韩免费在线观看| 久久综合色播五月| 欧美在线播放|