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

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>
            国产午夜精品一区理论片飘花 | 国外成人免费视频| 欧美区在线播放| 久久婷婷麻豆| 久久欧美肥婆一二区| 久久亚洲风情| 欧美激情黄色片| 欧美色欧美亚洲高清在线视频| 欧美日本亚洲视频| 国产精品美女久久久浪潮软件 | 亚洲一区三区在线观看| 亚洲一区二区在线看| 性欧美大战久久久久久久久| 久久精品视频导航| 欧美激情成人在线| 欧美吻胸吃奶大尺度电影| 国产精品劲爆视频| 国产亚洲精品7777| 91久久精品国产91性色tv| 一区电影在线观看| 久久精品国产一区二区三区| 欧美福利一区| 亚洲一区在线播放| 美女视频黄a大片欧美| 欧美视频中文字幕在线| 国产日韩欧美亚洲一区| 一区二区三区在线观看欧美| 99热精品在线| 久久一区欧美| 中文一区在线| 欧美国产日产韩国视频| 国产日韩欧美一区在线| 日韩亚洲欧美一区| 亚洲综合二区| 亚洲国产精品一区二区www在线| 欧美激情一区二区三区成人| 最新国产拍偷乱拍精品| 香蕉av福利精品导航| 欧美国产先锋| 在线成人激情黄色| 亚洲综合另类| 亚洲欧洲日产国产综合网| 欧美亚洲视频一区二区| 欧美色区777第一页| 亚洲第一天堂av| 午夜在线观看免费一区| 亚洲韩国一区二区三区| 国产日产欧产精品推荐色| 久久久99久久精品女同性| 欧美激情第五页| 亚洲午夜电影网| 欧美华人在线视频| 国外成人在线视频网站| 国产欧美激情| 亚洲天堂男人| 91久久极品少妇xxxxⅹ软件| 欧美一区二区三区成人| 国产精品久久久久久一区二区三区| 亚洲人精品午夜在线观看| 美女国内精品自产拍在线播放| 亚洲欧美影院| 国产欧美精品va在线观看| 国产一区二区三区奇米久涩| 亚洲在线日韩| 一区二区电影免费观看| 久久综合九色综合网站| 中文一区在线| 欧美日韩综合另类| 亚洲素人一区二区| 亚洲精品欧美日韩专区| 欧美电影打屁股sp| 亚洲精品视频在线观看网站| 欧美二区不卡| 另类人畜视频在线| 亚洲电影天堂av| 欧美福利影院| 欧美成人免费一级人片100| 精品69视频一区二区三区| 玖玖综合伊人| 欧美xart系列高清| 夜夜嗨av一区二区三区四区| 亚洲乱码国产乱码精品精天堂| 欧美日韩三级视频| 先锋影音久久久| 欧美一区不卡| 欧美日韩免费高清| 久久久久在线观看| 欧美jizz19性欧美| 在线中文字幕一区| 亚洲欧美三级在线| 伊人久久成人| 亚洲免费观看在线视频| 国产精品裸体一区二区三区| 久久久久**毛片大全| 欧美二区在线播放| 亚洲午夜在线观看| 久久久免费av| 亚洲一区二区三区中文字幕在线| 亚洲欧美日韩成人高清在线一区| 精品成人一区二区三区| 亚洲精品乱码久久久久久按摩观| 国产精品区一区| 你懂的亚洲视频| 欧美性一区二区| 美国成人直播| 欧美日韩亚洲一区二| 亚洲欧美国产高清| 久久综合婷婷| 亚洲一区二区三区在线视频| 亚洲精选大片| 鲁鲁狠狠狠7777一区二区| 亚洲美女91| 先锋亚洲精品| 亚洲日韩视频| 亚洲欧美成人在线| 亚洲人成艺术| 欧美一区二区三区播放老司机 | 亚洲国产mv| 欧美色大人视频| 久久久久久综合| 免费成人高清| 欧美影院午夜播放| 欧美日韩在线免费观看| 久久精品亚洲热| 日韩亚洲成人av在线| 国产日韩欧美在线观看| 亚洲电影天堂av| 久久一日本道色综合久久| 99热免费精品| 久久久噜噜噜久久| 欧美专区在线播放| 国产精品九九久久久久久久| 欧美在线播放高清精品| 欧美色区777第一页| 欧美二区在线播放| 韩国在线视频一区| 午夜精品视频一区| 中文国产亚洲喷潮| 欧美高清在线视频| 快she精品国产999| 国产日本欧美一区二区| 在线亚洲+欧美+日本专区| 亚洲成人在线观看视频| 久久精品论坛| 国产农村妇女毛片精品久久麻豆| 亚洲国产电影| 伊大人香蕉综合8在线视| 亚洲免费影视| 亚洲尤物在线视频观看| 久久精品亚洲一区| 美日韩精品视频免费看| 国产一区二区av| 亚洲一区在线免费观看| 亚洲一二三区在线观看| 欧美日韩精品免费观看| 欧美成人免费在线观看| 在线播放亚洲| 免费观看成人鲁鲁鲁鲁鲁视频| 男人的天堂成人在线| 在线观看一区| 欧美一区二区三区在| 国产亚洲欧洲| 欧美在线1区| 久久夜精品va视频免费观看| 国产午夜精品美女毛片视频| 欧美一区二区三区在线观看| 美女主播精品视频一二三四| 国内在线观看一区二区三区| 久久精品国产免费观看| 免费久久99精品国产自| 亚洲电影欧美电影有声小说| 亚洲一区二区三区四区视频 | 欧美va亚洲va香蕉在线| 亚洲精品在线免费观看视频| 亚洲视频在线观看视频| 欧美大片专区| 亚洲婷婷在线| 久久精品亚洲| 亚洲国产欧美一区二区三区同亚洲| 欧美成人dvd在线视频| 欧美激情中文字幕一区二区| 一本大道av伊人久久综合| 国产精品福利在线观看网址| 亚洲欧美另类国产| 欧美国产丝袜视频| 国产亚洲精品自拍| 欧美日韩精品免费观看视频| 性欧美18~19sex高清播放| 欧美国产国产综合| 亚洲在线一区二区| 国产精品久久久久久福利一牛影视| 亚洲高清在线播放| 亚洲午夜一二三区视频| 一区免费视频| 欧美婷婷六月丁香综合色| 亚洲视频专区在线| 欧美黄污视频| 欧美在线视频观看免费网站| 亚洲精品欧美精品| 国产中文一区|