最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++ 動(dòng)態(tài)內(nèi)存分配相關(guān)總結(jié)

 更新時(shí)間:2021年02月25日 16:55:05   作者:流星斬月  
這篇文章主要介紹了c++ 動(dòng)態(tài)內(nèi)存分配相關(guān)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)和使用c++,感興趣的朋友可以了解下

  下面隨筆是關(guān)于c++動(dòng)態(tài)內(nèi)存分配。

動(dòng)態(tài)申請(qǐng)內(nèi)存操作符 new

  • new 類型名T(初始化參數(shù)列表)
  • 功能:在程序執(zhí)行期間,申請(qǐng)用于存放T類型對(duì)象的內(nèi)存空間,并依初值列表賦以初值。
  • 結(jié)果值:成功:T類型的指針,指向新分配的內(nèi)存;失?。簰伋霎惓?。

釋放內(nèi)存操作符delete

  • delete 指針p
  • 功能:釋放指針p所指向的內(nèi)存。p必須是new操作的返回值。
//例1 動(dòng)態(tài)創(chuàng)建對(duì)象舉例

#include <iostream>

using namespace std;

class Point {

public:

Point() : x(0), y(0) {

  cout<<"Default Constructor called."<<endl;

}

Point(int x, int y) : x(x), y(y) {

  cout<< "Constructor called."<<endl;

}

~Point() { cout<<"Destructor called."<<endl; }

  int getX() const { return x; }

  int getY() const { return y; }

  void move(int newX, int newY) {

    x = newX;

    y = newY;

}

private:

int x, y;

};

int main() {

  cout << "Step one: " << endl;

  Point *ptr1 = new Point; //調(diào)用默認(rèn)構(gòu)造函數(shù)

  delete ptr1; //刪除對(duì)象,自動(dòng)調(diào)用析構(gòu)函數(shù)

  cout << "Step two: " << endl;

  ptr1 = new Point(1,2);

  delete ptr1;

  return 0;

}
運(yùn)行結(jié)果:

Step One:

Default Constructor called.

Destructor called.

Step Two:

Constructor called.

Destructor called.

分配和釋放動(dòng)態(tài)數(shù)組

  • 分配:new 類型名T [ 數(shù)組長(zhǎng)度 ]

數(shù)組長(zhǎng)度可以是任何表達(dá)式,在運(yùn)行時(shí)計(jì)算

  • 釋放:delete[] 數(shù)組名p

釋放指針p所指向的數(shù)組。
p必須是用new分配得到的數(shù)組首地址。

//例2 動(dòng)態(tài)創(chuàng)建對(duì)象數(shù)組舉例

#include<iostream>

using namespace std;

class Point { //類的聲明同例6-16,略 };

int main() {

  Point *ptr = new Point[2]; //創(chuàng)建對(duì)象數(shù)組

  ptr[0].move(5, 10); //通過指針訪問數(shù)組元素的成員

  ptr[1].move(15, 20); //通過指針訪問數(shù)組元素的成員

  cout << "Deleting..." << endl;

  delete[] ptr; //刪除整個(gè)對(duì)象數(shù)組

  return 0;

}
運(yùn)行結(jié)果:

Default Constructor called.

Default Constructor called.

Deleting...

Destructor called.

Destructor called.

動(dòng)態(tài)創(chuàng)建多維數(shù)組

new 類型名T[第1維長(zhǎng)度][第2維長(zhǎng)度]…;

如果內(nèi)存申請(qǐng)成功,new運(yùn)算返回一個(gè)指向新分配內(nèi)存首地址的指針。

  例如:

  char (*fp)[3];

  fp = new char[2][3];

//例3 動(dòng)態(tài)創(chuàng)建多維數(shù)組

#include <iostream>

using namespace std;

int main() {

  int (*cp)[9][8] = new int[7][9][8];

  for (int i = 0; i < 7; i++)

    for (int j = 0; j < 9; j++)

      for (int k = 0; k < 8; k++)

        *(*(*(cp + i) + j) + k) =(i * 100 + j * 10 + k);

  for (int i = 0; i < 7; i++) {

    for (int j = 0; j < 9; j++) {

      for (int k = 0; k < 8; k++)

        cout << cp[i][j][k] << " ";

        cout << endl;

    }

    cout << endl;

  }

  delete[] cp;

  return 0;

}

以上就是c++ 動(dòng)態(tài)內(nèi)存分配相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于c++ 動(dòng)態(tài)內(nèi)存分配的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C語言 OpenCV實(shí)現(xiàn)柱面投影

    C語言 OpenCV實(shí)現(xiàn)柱面投影

    在做全景拼接的時(shí)候,為了保持圖片中的空間約束與視覺的一致性,需要進(jìn)行柱面投影,否則離中心圖像距離越遠(yuǎn)的圖像拼接后變形越大。本文將具體介紹一下這如何實(shí)現(xiàn),需要的可以參考一下
    2021-12-12
  • Visual Studio 2019 DLL動(dòng)態(tài)庫連接實(shí)例(圖文教程)

    Visual Studio 2019 DLL動(dòng)態(tài)庫連接實(shí)例(圖文教程)

    這篇文章主要介紹了Visual Studio 2019 DLL動(dòng)態(tài)庫連接實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 解讀C++編譯報(bào)錯(cuò)有跡可尋

    解讀C++編譯報(bào)錯(cuò)有跡可尋

    這篇文章主要介紹了解讀C++編譯報(bào)錯(cuò)有跡可尋,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • C++類結(jié)構(gòu)體與json相互轉(zhuǎn)換

    C++類結(jié)構(gòu)體與json相互轉(zhuǎn)換

    這篇文章主要介紹的是C++類結(jié)構(gòu)體與json相互轉(zhuǎn)換,json字符串一般使用的是開源的類庫Newtonsoft.Json,方法十分簡(jiǎn)潔,下面就隨小編一起看下面文章內(nèi)容吧
    2021-09-09
  • 詳解C語言sscanf()函數(shù)、vsscanf()函數(shù)、vscanf()函數(shù)

    詳解C語言sscanf()函數(shù)、vsscanf()函數(shù)、vscanf()函數(shù)

    這篇文章主要介紹了詳解C語言sscanf()函數(shù)、vsscanf()函數(shù)、vscanf()函數(shù),是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-08-08
  • Qt鍵盤事件實(shí)現(xiàn)圖片在窗口上下左右移動(dòng)

    Qt鍵盤事件實(shí)現(xiàn)圖片在窗口上下左右移動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Qt鍵盤事件實(shí)現(xiàn)圖片在窗口上下左右移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • OpenCV4 實(shí)現(xiàn)背景分離的詳細(xì)步驟(背景減法模型)

    OpenCV4 實(shí)現(xiàn)背景分離的詳細(xì)步驟(背景減法模型)

    背景分離(BS)是一種通過使用靜態(tài)相機(jī)來生成前景掩碼(即包含屬于場(chǎng)景中的移動(dòng)對(duì)象像素的二進(jìn)制圖像)的常用技術(shù),本文給大家介紹OpenCV4 實(shí)現(xiàn)背景分離的詳細(xì)步驟,需要的朋友可以參考下
    2021-09-09
  • C++實(shí)現(xiàn)defer聲明方法詳解

    C++實(shí)現(xiàn)defer聲明方法詳解

    這篇文章主要介紹了C++實(shí)現(xiàn)defer聲明,在和朋友交談時(shí)候,無意間了解到Go語言的defer,發(fā)現(xiàn)挺有意思的。和智能指針類似,當(dāng)出了作用域后,被defer修飾的操作才會(huì)執(zhí)行
    2022-11-11
  • C++實(shí)現(xiàn)單例模式的方法

    C++實(shí)現(xiàn)單例模式的方法

    這篇文章主要為大家介紹了C++實(shí)現(xiàn)單例模式的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • VisualStudio2019配置OpenCV4.5.0的方法示例

    VisualStudio2019配置OpenCV4.5.0的方法示例

    這篇文章主要介紹了VisualStudio2019配置OpenCV4.5.0的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論

大邑县| 宜春市| 防城港市| 弋阳县| 浦城县| 孟连| 罗甸县| 澳门| 晴隆县| 黄石市| 屏南县| 宝应县| 清苑县| 大埔县| 蒙城县| 军事| 开平市| 久治县| 东光县| 富阳市| 仁化县| 日土县| 镇康县| 乳源| 龙江县| 济源市| 荣昌县| 新平| 出国| 肇州县| 苏尼特左旗| 沐川县| 金昌市| 石楼县| 安徽省| 莲花县| 舒城县| 霍邱县| 岳阳县| 剑河县| 英山县|