国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

8.8 【C語言】動(dòng)態(tài)內(nèi)存分配與指向它的指針變量

這篇具有很好參考價(jià)值的文章主要介紹了8.8 【C語言】動(dòng)態(tài)內(nèi)存分配與指向它的指針變量。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

8.8.1 什么是內(nèi)存的動(dòng)態(tài)分配

棧:全局變量和局部變量,全局變量是分配在內(nèi)存中的靜態(tài)存儲(chǔ)區(qū)的,非靜態(tài)的局部變量是分配在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)區(qū)的。

堆:數(shù)據(jù)臨時(shí)存放在一個(gè)特別的自由存儲(chǔ)區(qū)。

8.8.2 怎樣建立內(nèi)存的動(dòng)態(tài)分配

對內(nèi)存的動(dòng)態(tài)分配是通過系統(tǒng)提供的庫函數(shù)來實(shí)現(xiàn)的,主要有malloc,calloc,free,realloc這四個(gè)函數(shù)。

1.用malloc函數(shù)開辟動(dòng)態(tài)存儲(chǔ)區(qū)

其函數(shù)原型為:

void * malloc(unsigned int size);

作用是在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配一個(gè)長度為size的連續(xù)空間。

2.用calloc函數(shù)開辟動(dòng)態(tài)存儲(chǔ)區(qū)

函數(shù)原型為:

void * calloc(unsigned n,unsigned size);

在內(nèi)存的動(dòng)態(tài)存儲(chǔ)區(qū)中分配n個(gè)長度為size的連續(xù)空間,這個(gè)空間一般比較大,足以保存一個(gè)數(shù)組。

3.用realloc函數(shù)重新分配動(dòng)態(tài)分配區(qū)

其函數(shù)原型為:

void * realloc(void *p,unsigned int size);

如果已經(jīng)通過malloc函數(shù)或calloc函數(shù)獲得了動(dòng)態(tài)空間,想改變其大小,可以用recalloc函數(shù)重新分配。

4.用free函數(shù)釋放動(dòng)態(tài)存儲(chǔ)區(qū)

其函數(shù)原型為

void free(void * p);

作用是釋放指針變量p所指向的動(dòng)態(tài)空間,使這部分空間能重新被其他變量使用。

8.8.3 void指針類型

不要把“指向void類型”理解為能指向“任何的類型”的數(shù)據(jù),而應(yīng)理解為“指向空類型”或“不指向確定的類型”的數(shù)據(jù)。

例8.30:建立動(dòng)態(tài)數(shù)組,輸入5個(gè)學(xué)生的成績,另外用一個(gè)函數(shù)檢查其中有無低于60分的,輸出不及格成績。文章來源地址http://www.zghlxwxcb.cn/news/detail-671480.html

#include<stdio.h>
#include<stdib.h>           //程序中用了malloc函數(shù),應(yīng)包含stdib.h
int main(){
    void check(int *);      //函數(shù)聲明
    int *pi,i;
    p1=(int * )malloc(5 *sizeof(int));  //開辟動(dòng)態(tài)存儲(chǔ)區(qū),將地址轉(zhuǎn)換成int*型,然后放在p1中
    for(i=0;i<5;i++)
    scanf("%d",p1+1);       //輸入五個(gè)學(xué)生成績
    check(p1);             //調(diào)用check函數(shù)
    return 0;
}
void check(int *p){       //定義check函數(shù),形參是int*指針
    int i;
    printf("they are fail:");
    for(i=0;i<5;i++)
    if(p[i]<60)printf("%d",p[i]);   //輸出不合格成績
    printf("\n");
}

到了這里,關(guān)于8.8 【C語言】動(dòng)態(tài)內(nèi)存分配與指向它的指針變量的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深入挖掘C語言 ----動(dòng)態(tài)內(nèi)存分配

    深入挖掘C語言 ----動(dòng)態(tài)內(nèi)存分配

    開篇備忘錄: \\\"自給自足的光, 永遠(yuǎn)都不會(huì)暗\\\" 正文開始 C語言提供了一個(gè)動(dòng)態(tài)開辟內(nèi)存的函數(shù); 這個(gè)函數(shù)向內(nèi)存申請一塊連續(xù)可用的空間, 并返回指向這塊空間的指針. 如果內(nèi)存開辟成功, 則返回一個(gè)指向開辟好空間的指針 如果開辟失敗, 則返回一個(gè)NULL指針, 因此malloc的返回值一

    2024年04月28日
    瀏覽(33)
  • 詳解C語言—?jiǎng)討B(tài)內(nèi)存分配(二)

    詳解C語言—?jiǎng)討B(tài)內(nèi)存分配(二)

    目錄 前言: 幾個(gè)經(jīng)典的例題題 例一: 例二: 例三: 例四: 例五:? ?C/C++程序的內(nèi)存開辟 柔性數(shù)組 柔性數(shù)組的特點(diǎn): 柔性數(shù)組的使用:? 柔性數(shù)組的代替: 柔性數(shù)組的優(yōu)勢: 小結(jié): 希望在復(fù)習(xí)完詳解C語言—?jiǎng)討B(tài)內(nèi)存分配(一)???????,閱讀此篇文章會(huì)進(jìn)一步提升

    2024年02月08日
    瀏覽(29)
  • C語言 malloc動(dòng)態(tài)內(nèi)存分配函數(shù)

    malloc函數(shù):malloc時(shí)動(dòng)態(tài)內(nèi)存分配函數(shù),用于申請一塊連續(xù)的指定大小的內(nèi)存塊區(qū)域以void*類型返回分配的內(nèi)存區(qū)域地址,就是當(dāng)數(shù)組創(chuàng)建長度不一定 害怕數(shù)據(jù)存儲(chǔ)不夠或者不能浪費(fèi)時(shí)間 在使用malloc開辟空間時(shí),使用完成一定要釋放空間,如果不釋放會(huì)造內(nèi)存泄漏。n在使用ma

    2024年02月07日
    瀏覽(17)
  • C語言系列9——?jiǎng)討B(tài)內(nèi)存分配與釋放

    在計(jì)算機(jī)編程中,動(dòng)態(tài)內(nèi)存分配與釋放是一項(xiàng)重要的操作。本文將介紹malloc與free這兩個(gè)基本操作,探討內(nèi)存泄漏的原因及避免策略,并通過實(shí)際案例討論動(dòng)態(tài)數(shù)組的創(chuàng)建與管理技巧。 動(dòng)態(tài)內(nèi)存分配是現(xiàn)代編程中的一個(gè)關(guān)鍵概念。與靜態(tài)內(nèi)存分配不同,動(dòng)態(tài)內(nèi)存分配允許程序

    2024年02月19日
    瀏覽(22)
  • 操作系統(tǒng)動(dòng)態(tài)內(nèi)存分配算法【C語言實(shí)現(xiàn)】

    操作系統(tǒng)動(dòng)態(tài)內(nèi)存分配算法【C語言實(shí)現(xiàn)】

    題目: 采用五個(gè)算法,各自作業(yè)在1024kB空間上分配情況。 內(nèi)存可變分區(qū)分配仿真算法 :首次適應(yīng),下次適應(yīng),最佳適應(yīng),最壞適應(yīng)和快速分配。 使用的結(jié)構(gòu)體數(shù)組表示起始地址,內(nèi)存塊大小,內(nèi)存塊狀態(tài)(0空閑,1占用) void bubbleprint(struct Info info[]) 函數(shù)是為了內(nèi)存塊大小

    2024年02月03日
    瀏覽(25)
  • C語言【自定義數(shù)據(jù)類型、typedef、動(dòng)態(tài)內(nèi)存分配】

    一、自定義數(shù)據(jù)類型。 ? 關(guān)于下面講到的所有自定義數(shù)據(jù)類型(enum、struct、union),有一點(diǎn)要說的是:定義類型不是聲明變量,做這步操作時(shí)不分配內(nèi)存,也不能在定義類型時(shí)賦值(枚舉那個(gè)不是賦值,是做一個(gè)限定,賦值時(shí)賦限定之外的值也不報(bào)錯(cuò)。)。 1、typedef (給類

    2024年02月05日
    瀏覽(19)
  • c語言:通訊錄管理系統(tǒng)(動(dòng)態(tài)分配內(nèi)存版)

    c語言:通訊錄管理系統(tǒng)(動(dòng)態(tài)分配內(nèi)存版)

    前言: 本通訊錄管理系統(tǒng)一共三個(gè)版本,除此文章以外還有如下倆個(gè)版本,大家可以根據(jù)需求自?。?基礎(chǔ)增刪查改功能版本 :c語言:通訊錄管理系統(tǒng)(增刪查改)_luming.02的博客-CSDN博客 文件保存版本 :c語言:通訊錄管理系統(tǒng)(文件版本)-CSDN博客 ????????本文是在基

    2024年02月08日
    瀏覽(104)
  • 【C語言深度解剖】float變量在內(nèi)存中存儲(chǔ)原理&&指針變量與“零值”比較

    【C語言深度解剖】float變量在內(nèi)存中存儲(chǔ)原理&&指針變量與“零值”比較

    大家好好我是沐曦希?? 根據(jù)國際標(biāo)準(zhǔn)IEEE(電氣和電子工程協(xié)會(huì)) 754,任意一個(gè)二進(jìn)制浮點(diǎn)數(shù)V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符號位,當(dāng)S=0,V為正數(shù);當(dāng)S=1,V為負(fù)數(shù)。 M表示有效數(shù)字,大于等于1,小于2。 2^E表示指數(shù)位。 例如: 十進(jìn)制中的5.0轉(zhuǎn)換成二進(jìn)制

    2024年02月14日
    瀏覽(25)
  • C語言:指向數(shù)組的指針和指向數(shù)組首元素的指針

    相關(guān)閱讀 C語言 https://blog.csdn.net/weixin_45791458/category_12423166.html?spm=1001.2014.3001.5482 ? ? ? ? 指向數(shù)組的指針和指向數(shù)組首元素的指針常常被混淆,或者籠統(tǒng)地被稱為數(shù)組指針,但它們之間是有差別的,本文就將對此進(jìn)行討論。 ? ? ? ? 下面的代碼首先創(chuàng)建了一個(gè)數(shù)組,然后創(chuàng)

    2024年02月02日
    瀏覽(23)
  • C語言指針操作(六)指向函數(shù)的指針

    C語言指針操作(六)指向函數(shù)的指針

    指向函數(shù)的指針詳解,以及如何使用指向函數(shù)的指針變量做函數(shù)參數(shù) 指向函數(shù)的指針作為函數(shù)參數(shù),是 C 語言實(shí)際應(yīng)用中的一個(gè)比較深入的部分。 目錄 一、什么是函數(shù)的指針 二、用函數(shù)指著變量調(diào)用函數(shù) 2.1舉例說明 三、怎樣定義和使用指向函數(shù)的指針變量 3.1定義指向函數(shù)

    2024年02月05日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包