C 入門經典 例5 11 動態分配空間,堆與棧

2022-08-26 21:48:28 字數 617 閱讀 9610

1:在程式中定義乙個變數,它的值會被放入記憶體中。如果沒有申請動態分配,它的值將會被放在棧中。棧中的變數所屬的記憶體大小是無法被改變的,它們的產生與消亡也與變數定義的位置和儲存方式有關。堆是一種與棧相對應的動態分配方式的記憶體。當我們申請使用動態分配方式儲存某個變數時,這個變數就會被放入堆中。根據需要,這個變數的記憶體大小可以發生改變。

2:在建立變數之前,編譯器並沒有獲取到變數的名稱,而只是具有指向該變數的指標。這時申請變數的堆記憶體即申請自身指向堆。new是c++語言中申請動態記憶體的關鍵字,形式如下:

int* pi=new int;

這樣,pi指標就申請了動態方式,使用它在堆內申請記憶體儲存in型別的值。

具體例子**如下:

//

5.11.cpp : 定義控制台應用程式的入口點。

//#include

"stdafx.h

"#include

using

namespace

std;

intmain()

view code

執行結果:

儲存空間動態分配

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

C語言如何動態分配空間 malloc

一般的變數在定義是就要確定大小,但是有的時候不知道使用者的需要,就比如說排序,你不知道使用者想要給幾個數排序,所以為了保險起見往往是定義乙個很大的變數,而實際上使用者可能只需要給5個數排序,你卻int k 1024 來存放要排序的數,造成極大的浪費。這裡介紹乙個函式用於動態分配空間 malloc 原...

關於C 動態分配

一 c 提供的預設成員方法 1.1 預設建構函式如無定義建構函式 12 拷貝建構函式如無定義。1.3 賦值執行符 如無定義。1.4 位址執行符如無事實上義 2 類成員中含動態分配的指標 2.1 需重新定義拷貝結構函式,避免呼叫隱式拷貝建構函式。2.2 重新定義執行符 過載函式,避免呼叫隱式拷貝建構函...