欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

C語(yǔ)言 動(dòng)態(tài)內(nèi)存分配詳解

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

C語(yǔ)言 動(dòng)態(tài)內(nèi)存分配詳解

動(dòng)態(tài)內(nèi)存分配涉及到堆棧的概念:堆棧是兩種數(shù)據(jù)結(jié)構(gòu)。堆棧都是數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端(稱為棧頂(top))對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。

棧(操作系統(tǒng)):由操作系統(tǒng)自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。

堆(操作系統(tǒng)): 一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收,分配方式倒是類似于鏈表。

\在C語(yǔ)言中,全局變量分配在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū),非靜態(tài)的局部變量(包括形參)是分配在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū),該存儲(chǔ)區(qū)被稱為棧。除此之外,c語(yǔ)言還允許建立內(nèi)存動(dòng)態(tài)分配區(qū)域,以存放一些臨時(shí)用的數(shù)據(jù),這些數(shù)據(jù)不必在程序的聲明部分定義,也不必等到函數(shù)結(jié)束時(shí)才釋放,而是需要時(shí)隨時(shí)開辟,不需要是隨時(shí)釋放。這些詩(shī)句臨時(shí)存在一個(gè)特別的自由存儲(chǔ)區(qū),稱為堆區(qū)。

系統(tǒng)提供了四個(gè)庫(kù)函數(shù)來(lái)實(shí)現(xiàn)內(nèi)存的動(dòng)態(tài)分配:

(1)malloc(size) 在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一個(gè)長(zhǎng)度為size的連續(xù)空間。
(2)calloc(n,size) 在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配n個(gè)長(zhǎng)度為size的連續(xù)空間。
(3)free(p) 釋放指針變量p做指向的動(dòng)態(tài)空間。
(4)realloc(p,size) 將指針變量p指向的動(dòng)態(tài)空間大小改變?yōu)閟ize。

舉個(gè)栗子:

#include<stdio.h>
#include<stdlib.h>

int main()
{
  void check(int *);
  int *p1, i;
  p1 = (int *)malloc(5*sizeof(int));
  for ( i = 0; i < 5; i++)
   scanf("%d",p1+i);
  check(p1);
  getchar();
  getchar();
  return 0;
}
void check(int *p)
{
  int i;
  for (i = 0; i < 5; i++)
  if (p[i] < 60) printf("%d", p[i]);
  printf("\n");
}

程序沒有定義數(shù)組,而是開辟了一段動(dòng)態(tài)自由分配區(qū),輸入數(shù)字時(shí),按照地址復(fù)制給動(dòng)態(tài)數(shù)組的5個(gè)元素,p1指向第一個(gè)整型數(shù)據(jù),調(diào)用check函數(shù)時(shí),p1作為實(shí)參傳遞給形參p,因此可以理解為形參p和實(shí)參p1公享一段動(dòng)態(tài)分配區(qū)。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

上一篇:C語(yǔ)言中memcpy 函數(shù)的用法詳解

欄    目:C語(yǔ)言

下一篇:C語(yǔ)言之復(fù)雜鏈表的復(fù)制詳解

本文標(biāo)題:C語(yǔ)言 動(dòng)態(tài)內(nèi)存分配詳解

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1395.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有