<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【C++】 string變量不能使用memset

      使用memset會造成兩個問題:

      1. 內(nèi)存泄漏;

      2. =賦值時出現(xiàn)crash

      string類內(nèi)部是使用char* data維護(hù),使用new分配空間,直接memset會導(dǎo)致string內(nèi)部data=NULL, 造成內(nèi)存泄露;

      如果這時使用string s1 = s2; 會出現(xiàn)NULL= new char(size),導(dǎo)致crash。

      如:

      #pragma once
      #include<iostream>
      #include<assert.h>
      #include<string.h>
      using namespace std;
      namespace TY
      {
        class String
        {
        public:
          typedef char* iterator;
          iterator begin()
          {
            return _str;
          }
          iterator end()
          {
            return _str + _size;
          }
          //構(gòu)造函數(shù)
          String(const char* str = "")
          {
            if (nullptr == str)
            {
              assert(false);
              return;
            }
            _size = strlen(str);
            _capacity = _size;
            _str = new char[_capacity + 1];//加1保存'\0'
            strcpy(_str, str);
          }
          //拷貝構(gòu)造
          String(const String& s)
            :_str(new char[s._capacity +1])
            , _size(s._size)
            , _capacity(s._capacity)
          {
            strcpy(_str, s._str);
          }
          //賦值操作
          String& operator=(const String& s)
          {
            if (this != &s)
            {
              String tmp(s._str);
              swap(_str, tmp._str);
            }
            return *this;
          }
          //析構(gòu)函數(shù)
          ~String()
          {
            if (_str)
            {
              delete[] _str;
              _str = nullptr;
              _size = 0;
              _capacity = 0;
            }
          }
          char* c_str()
          {
            return _str;
          }
          private:
          char* _str;
          size_t _size;
          size_t _capacity;
          }
          void TestString1()
        {
          String s1("hello");
          String s2("world");
          String copy(s1);
          cout << s1.c_str() << endl;
          cout << s2.c_str() << endl;
          cout << copy.c_str() << endl;
          //利用迭代器打印String中 的元素
          String::iterator it = s1.begin();
          while (it != s1.end())
          {
            cout << *it << " ";
            ++it;
          }
          cout << endl;
          //范圍for
          for (auto e : s1)
          {
            cout << e << " ";
          }
          cout << endl;
        }
          
      };
      

       

      參考鏈接

      https://blog.csdn.net/tangya3158613488/article/details/86599693

      http://www.rzrgm.cn/beixiaobei/p/10914267.html

       

       

      posted @ 2021-10-26 19:54  我自逍遙笑  閱讀(127)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 98精品全国免费观看视频| 国产成人啪精品视频免费网| 337p粉嫩大胆噜噜噜| 狠狠色噜噜狠狠狠狠色综合久av | 人人妻人人澡人人爽人人精品av| 国产精品国产三级国产专业| 被黑人伦流澡到高潮HNP动漫| 日韩丝袜欧美人妻制服| 激情综合网激情综合网五月| 桃花岛亚洲成在人线AV| 国产suv精品一区二区| 欧美中文亚洲v在线| 国产亚洲精品AA片在线播放天 | 国产成人免费午夜在线观看| 国产午夜亚洲精品国产成人| 夜夜爽日日澡人人添| 永久免费无码av在线网站| 精品九九人人做人人爱| 日本少妇xxx做受| 九九热在线视频免费观看| 久久久噜噜噜久久| 无码国模国产在线观看免费| A级毛片100部免费看| 精品国产一区二区三区麻豆| 国产成人精品无码播放| 亚洲国产成人精品区综合| 乱人伦中文视频在线| 国产精品高清国产三级囯产AV| 国产AV永久无码青青草原| 国产成人精品日本亚洲专区6| 国产午夜精品理论大片| 在线亚洲人成电影网站色www| 久久88香港三级台湾三级播放| 激情久久综合精品久久人妻| 一二三四中文字幕日韩乱码| 国产午夜福利视频一区二区| 国产精品亚洲二区亚瑟| 茌平县| 四虎成人精品无码永久在线| 在线观看国产成人AV天堂| 国产精品区一区第一页|