動(dòng)態(tài)內(nèi)存分配即分配內(nèi)存大小在運(yùn)行時(shí)才確定,一般在堆中分配。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、康巴什ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的康巴什網(wǎng)站制作公司
C語言動(dòng)態(tài)內(nèi)存分配相關(guān)的函數(shù)如下幾個(gè):malloc、calloc、realloc、free;
malloc函數(shù)游虧寬的使用比較直接,一個(gè)成功的malloc調(diào)用返回分配的size大小的內(nèi)存的指針。失敗時(shí)返回NULL并將錯(cuò)誤代碼置為ENOMEM。
calloc函數(shù)可以分配nr個(gè)size大小的內(nèi)存空間,一般用于一組空做struct結(jié)構(gòu)體的分配。
realloc函數(shù)將ptr指向的內(nèi)存空間重新分配大小為size并返回新的內(nèi)存首地址。
free函神亮數(shù)釋放前三個(gè)函數(shù)申請(qǐng)的內(nèi)存空間,所以,使用前三個(gè)分配函數(shù)分配的內(nèi)存一定要free掉。
#includeiostream.h
#include讓晌string.h
void getmemory(const char ** p)
{
*p = new char[20];
}
int main()
{
char *str=NULL;
getmemory(str);
strcpy(str,"qew");
return 0;
}
說明為什么會(huì)讓str獲取到p開辟的空間。頃滑物
那么void getmemory(const char ** p)這個(gè)函數(shù)形參是什么!形參實(shí)際上是p,p是調(diào)用函數(shù)的一份拷貝,p改變了調(diào)用的實(shí)參是不會(huì)改變的(你的程序的錯(cuò)誤)。當(dāng)我改變的是*p時(shí),因?yàn)閜是一份指針拷貝,p與實(shí)參指針str保存同一塊地址,當(dāng)改變*p時(shí)對(duì)應(yīng)的實(shí)參指針str指向的內(nèi)容也就改變了。
仿佛
int a = 5;
int b = a;
b = 3;
cout a;//a依然是5,因?yàn)閎是a的一份拷貝,b變了,a不會(huì)變
int a = 5;
int *p = a;
*p = 3;
cout a;//a為3,因?yàn)閜中存的是a的地址,當(dāng)改變p指向的內(nèi)容時(shí),實(shí)際上就是改變a的雀液內(nèi)容
函數(shù)原型:派稿
void*
malloc(int
size);
參數(shù):size
需要分配的內(nèi)存大小。
返回值:申指羨如請(qǐng)到的內(nèi)存地址(void*)。
說明:
如果返回NULL則說明唯啟申請(qǐng)失敗。
分享題目:c語言地址分配函數(shù) c語言地址形式
文章分享:http://chinadenli.net/article14/ddpsjge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、微信小程序、虛擬主機(jī)、品牌網(wǎng)站設(shè)計(jì)、小程序開發(fā)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)