欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++存儲方案和動態(tài)分配

 更新時間:2021年12月31日 11:41:31   作者:公眾號:Coder梁(ID:Coder_LT)  
這篇文章主要介紹了C++存儲方案和動態(tài)分配,

存儲方案和動態(tài)分配

在之前的文章當中,我們討論了C++用來為變量分配內(nèi)存的5種方案,但是這些方案并不適用于使用new運算符分配的內(nèi)存,這種內(nèi)存被稱為動態(tài)內(nèi)存。

我們在之前的文章當中也曾介紹過,動態(tài)內(nèi)存由newdelete控制,而不是由作用域和鏈接性規(guī)則控制。所以我們可以在一個函數(shù)當中分配動態(tài)內(nèi)存,在另外一個函數(shù)中釋放。

通常C++編譯器當中有三塊獨立的內(nèi)存,一塊用于靜態(tài)變量,一塊用于自動變量,還有一塊用于動態(tài)存儲。

雖然存儲方案的概念不適用于動態(tài)內(nèi)存,但是適用于動態(tài)內(nèi)存的自動和靜態(tài)指針。C++ Primer當中有這么一個例子,我們在一個函數(shù)當中有如下語句:

float * p_fees = new float[20];


很明顯,我們通過new創(chuàng)建了一個長度為20的float數(shù)組,這塊數(shù)組的內(nèi)存將會一直停留在內(nèi)存當中,直到使用delete語句釋放。但當該函數(shù)運行結束的時候,p_fees這個指針將會消失。如果希望在其他地方能夠使用這個數(shù)組,需要將地址通過某種方式返回或者傳遞。

如果我們將p_fees的鏈接性聲明為外部的,那么我們在其他地方都可以訪問到了,如果另外的文件當中需要訪問,也同樣可以使用關鍵字extern。

初始化

前面講了使用new申請內(nèi)存的方法,如果我們想要在分配內(nèi)存的同時完成變量的初始化,應該怎么辦呢?

如果要為內(nèi)置的標量類型分配空間并初始化,可以在類型名后面加上初始值,并將它用括號括起來:

int *pi = new int(3);
double *pd = new double(99.9);


如果我們要初始化結構體或者是數(shù)組,則需要使用大括號的列表初始化,這需要編譯器支持C++11,這是C++11中的新特性:

struct P {
    int x, y;
};

P *p = new P{3, 4};
int *arr = new int[4] {2, 3, 4, 5};


在C++11當中也支持對單值變量使用列表初始化:

double *pd = new double(99.99);

到此這篇關于C++存儲方案和動態(tài)分配的文章就介紹到這了,更多相關C++存儲方案和動態(tài)分配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 常用的C語言排序算法(兩種)

    常用的C語言排序算法(兩種)

    本文給大家分享兩種常用的C語言排序算法,代碼非常簡單,感興趣的朋友可以參考下
    2016-09-09
  • C/C++判斷傳入的UTC時間是否當天的實現(xiàn)方法

    C/C++判斷傳入的UTC時間是否當天的實現(xiàn)方法

    在項目中經(jīng)常會顯示一個時間,如果這個時間在今日內(nèi)就顯示為時分秒,否則顯示為年月日,有需要的朋友可以參考一下
    2014-01-01
  • C++ 中assert()函數(shù)用法總結

    C++ 中assert()函數(shù)用法總結

    這篇文章主要介紹了C++ 中assert()函數(shù)用法總結的相關資料,需要的朋友可以參考下
    2017-07-07
  • 關于C語言中數(shù)據(jù)在內(nèi)存中的存儲詳解

    關于C語言中數(shù)據(jù)在內(nèi)存中的存儲詳解

    這篇文章主要給大家介紹了關于C語言中數(shù)據(jù)在內(nèi)存中的存儲的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • C語言數(shù)組實現(xiàn)公交車管理系統(tǒng)

    C語言數(shù)組實現(xiàn)公交車管理系統(tǒng)

    這篇文章主要介紹了C語言數(shù)組實現(xiàn)公交車管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言用函數(shù)指針實現(xiàn)一個特別的計算器

    C語言用函數(shù)指針實現(xiàn)一個特別的計算器

    函數(shù)指針是一個指針變量,它可以存儲函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關于C語言用函數(shù)指針實現(xiàn)計算器的方法,需要的朋友可以參考下
    2022-07-07
  • C語言實現(xiàn)學生宿舍信息管理系統(tǒng)課程設計

    C語言實現(xiàn)學生宿舍信息管理系統(tǒng)課程設計

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)學生宿舍信息管理系統(tǒng)課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言編程之動態(tài)內(nèi)存與柔性數(shù)組的了解

    C語言編程之動態(tài)內(nèi)存與柔性數(shù)組的了解

    本文是C語言編程篇,這篇文章主要為大家介紹了C語言編程中動態(tài)內(nèi)存的函數(shù)與柔性數(shù)組的特點,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • C++?OpenCV紅綠燈檢測Demo實現(xiàn)詳解

    C++?OpenCV紅綠燈檢測Demo實現(xiàn)詳解

    OpenCV(Open Source Computer Vision Library)是開源的計算機視覺和機器學習庫,提供了C++、 C、 Python、 Java接口,并支持Windows、 Linux、 Android、 Mac OS平臺,下面這篇文章主要給大家介紹了關于C++?OpenCV紅綠燈檢測Demo實現(xiàn)的相關資料,需要的朋友可以參考下
    2022-11-11
  • C++數(shù)組模擬之單鏈表與雙鏈表和棧和隊列的實現(xiàn)過程

    C++數(shù)組模擬之單鏈表與雙鏈表和棧和隊列的實現(xiàn)過程

    這篇文章主要介紹了C++數(shù)組模擬之單鏈表與雙鏈表和棧和隊列的實現(xiàn)過程,了解內(nèi)部原理是為了幫助我們做擴展,同時也是驗證了一個人的學習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的,跟隨下文來具體了解吧
    2023-02-02

最新評論