偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

 

大家好,我是梁唐。

想要追求更好閱讀體驗的同學,可以點擊「閱讀原文」訪問github倉庫。

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

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

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

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

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

  1. float * p_fees = new float[20]; 

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

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

初始化

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

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

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

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

  1. struct P { 
  2.     int x, y; 
  3. }; 
  4.  
  5. P *p = new P{3, 4}; 
  6. int *arr = new int[4] {2, 3, 4, 5}; 

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

  1. double *pd = new double(99.99); 

 本文轉載自微信公眾號「Coder梁」,可以通過以下二維碼關注。轉載本文請聯(lián)系Coder梁公眾號。

 

責任編輯:武曉燕 來源: Coder梁
相關推薦

2022-01-07 15:10:53

C++動態(tài)內存

2021-12-30 14:58:58

C++函數(shù)動態(tài)

2021-12-12 18:13:54

C++This指針

2021-12-29 20:31:40

C++多態(tài)指針

2021-11-09 10:38:16

C++Const指針

2021-11-26 10:56:28

C++存儲持續(xù)性

2021-11-26 00:03:20

C++編譯常量

2021-12-09 10:56:50

函數(shù)C++原型

2021-12-08 10:43:09

C++實現(xiàn)

2021-12-10 10:45:36

C++函數(shù)Stock

2021-10-26 00:19:51

C++結構體存儲

2021-11-30 11:04:36

C++函數(shù)語言

2021-12-11 19:02:03

函數(shù)C++對象

2021-11-27 11:50:09

C++靜態(tài)持續(xù)

2021-12-03 10:48:18

Using編譯指令

2021-11-10 10:48:36

C++函數(shù)指針

2021-10-26 15:36:17

C++枚舉值類型

2021-10-27 16:27:20

C++指針操控

2021-12-05 18:20:42

C++空間特性

2021-12-15 10:25:57

C++運算符重載
點贊
收藏

51CTO技術棧公眾號