C 之儲存空間的動態分配和釋放

2021-08-13 10:11:49 字數 819 閱讀 7128

很多時候,我們需要根據問題的實際規模來定義陣列的大小,即確定實際需要使用的儲存空間的大小,這個時候就要用到動態申請、釋放儲存空間的方法。

一般情況下,變數儲存空間的分配和釋放是由系統自動完成的,不需要我們的干預。

系統對自動分配記憶體的變數的訪問方式有兩種:

在程式執行中動態申請、釋放記憶體的變數,只能通過指標間接訪問。在c++中,new用於動態申請記憶體,delete用於釋放。注意:這些記憶體空間在程式結束前的適當時刻必須通過delete釋放。

例項

#include 

using

namespace

std;

int main()

注意:

new運算子有四種格式

p = new int;

p = new int(8);

p = new int[n];

p = new int[m][n];

其中只有格式2記憶體空間初始化,其他的記憶體空間初始值是不確定的,需要使用後續的賦值語句和通過指標間接的對其賦值。例如

p = new

int; //返回申請到的記憶體的起始位址

*p = 8;

(int)num = *p;

float *p;

p = newe float[10];

if (p == null)

else

#成功則執行程式

...

delete p;

儲存空間動態分配

ansi c說明了三個用於儲存空間動態分配的函式 1 malloc 分配指定位元組數的儲存區。此儲存區中的初始值不確定 2 calloc 為指定長度的物件,分配能容納其指定個數的儲存空間。該空間中的每一位 bit 都初始化為0 3 realloc 更改以前分配區的長度 增加或減少 當增加長度時,可能...

C 動態儲存空間的分配和釋放

使用new申請空間 特點 1 沒有名字,只能通過指標間接訪問它們。2 從堆中申請空間 分類 變數 語法 指標變數 new 型別名 delete 指標變數 舉例 int p p new int delete p 初始化 p 90 p new int 99 一維陣列 語法 指標變數 new 型別名 下標...

儲存空間的分配和釋放

在c語言中,記憶體分配提供了四個函式,malloc 函式 calloc 函式 realloc 函式和free 函式,用來實現記憶體的動態分配和釋放。這四個函式屬於stdlib.h這個庫函式中,其中malloc 函式 calloc 函式和realloc 函式都用於動態儲存分配,但有所差別,free 函...