5.動(dòng)態(tài)內(nèi)存分配

內(nèi)存申請(qǐng)

#include<stdio.h>
// malloc  memory allocate  內(nèi)存分配的
#include<malloc.h>  //要使用 malloc函數(shù)一定要把 頭文件給引入進(jìn)來  

int main(){
           int* p =   (int*)malloc(4); //一個(gè)int類型占用4字節(jié) 就要申請(qǐng)4個(gè)byte長度的內(nèi)存  
           // 返回值 : 是申請(qǐng)到的空間的首地址 (void)  指針類型的返回值  
           *p = 10;     
            
          //釋放內(nèi)存
          // free(p); 
          // p=NULL; 
           printf("內(nèi)存空間里面的值為%d\n",*p);         
           system("pause");   
}

動(dòng)態(tài)申請(qǐng)的內(nèi)存可以跨函數(shù)使用

#include<stdio.h>
#include<malloc.h> 
void f(int** p){
     int* pointer = (int*) malloc(sizeof(int)); 
     *pointer = 5; 
     printf("f() - pointer 的地址為 %#x\n", pointer); 
     *p = pointer; // 把動(dòng)態(tài)申請(qǐng)的內(nèi)存空間的地址 設(shè)置給p變量  
} 

int main(){
    int* p; // 是用來存放f() 中 pointer的地址的  
    f(&p);  //把p變量的地址 傳遞給子函數(shù)  
    printf("main pointer 的地址為 %#x\n", p); 
    printf("pointer的值=%d\n",*p); 
    system("pause");   
}

內(nèi)存影像

#include<stdio.h>
#include<malloc.h> 
void f(int** p){
     int* pointer = (int*) malloc((sizeof(int)*2)); // 申請(qǐng)的內(nèi)存可以存放兩個(gè)int  
     *pointer = 5; 
     *(pointer+1) = 100;
     printf("f() - pointer 的地址為 %#x\n", pointer); 
     *p = pointer; // 把動(dòng)態(tài)申請(qǐng)的內(nèi)存空間的地址 設(shè)置給p變量  
     free(pointer);  //free函數(shù)會(huì)標(biāo)記pointer所指向的內(nèi)存可以被重復(fù)使用疾嗅,但是沒有重新初始化該塊內(nèi)存的值外厂,所有會(huì)出現(xiàn)內(nèi)存影像的現(xiàn)象
     //pointer = NULL;//free之后應(yīng)該標(biāo)記pointer = NULL;后面的程序就無法再使用pointer了
} 

int main(){
    int* p; // 是用來存放f() 中 pointer的地址的  
    f(&p);  //把p變量的地址 傳遞給子函數(shù)  
    printf("main pointer 的地址為 %#x\n", p); 
    
    //pointer被free之后的內(nèi)存影像 
    printf("(pointer+1)的值=%d\n",*(p+1));  //內(nèi)存影像  
    system("pause");   
}

練習(xí)

#include<stdio.h>
#include<malloc.h> 

void printArr(int* arr, int len){
     int i=0;
     for(;i<len;i++){ 
        //printf("arr[%d]=%d\n", i, arr[i]); 
        printf("arr[%d]=%d\n", i, *(arr+i)); 
     }
}


int main(){
    // 動(dòng)態(tài)申請(qǐng)一塊內(nèi)存, 里面存放的是int類型的數(shù)組 
    // 1 打印一句話 提示用戶輸入 數(shù)組的大小
    // 動(dòng)態(tài)的創(chuàng)建出來一塊內(nèi)存空間  
    // 循環(huán)給數(shù)組里面每一個(gè)元素 賦值 ,再把里面的值打印輸出
    
    printf("請(qǐng)輸入 數(shù)組的大小\n");
    int len=0;
    scanf("%d",&len); 
    int* p =  (int*)malloc((sizeof(int)*len)); // len= 6 執(zhí)行完畢后申請(qǐng)了多少byte內(nèi)存?  
    // 1. 靜態(tài)申請(qǐng)的內(nèi)存  int* 4byte
    // 2.  24byte 
    // 24+4 28;  
    
    printf("請(qǐng)賦值\n");
    int i=0;
    for(;i<len;i++){ 
         scanf("%d",p+i);             
    }
    printf("---結(jié)果--\n");
    printArr(p,len); 


    printf("請(qǐng)輸入增加后的數(shù)組的大小\n"); 
    int len2=0;
    scanf("%d",&len2);
    if(len2>len){
        p =  (int*) realloc(p,len2);             
    }
    printf("請(qǐng)給剩余的數(shù)組賦值\n");
    int j=len;
    for(;j<len2;j++){ 
         scanf("%d",p+j);             
    }
    
    printf("---結(jié)果--\n");
    printArr(p,len2); 
    system("pause");   
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末代承,一起剝皮案震驚了整個(gè)濱河市汁蝶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌论悴,老刑警劉巖穿仪,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件席爽,死亡現(xiàn)場離奇詭異,居然都是意外死亡啊片,警方通過查閱死者的電腦和手機(jī)只锻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來紫谷,“玉大人齐饮,你說我怎么就攤上這事◇宰颍” “怎么了祖驱?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞒窒。 經(jīng)常有香客問我捺僻,道長,這世上最難降的妖魔是什么崇裁? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任匕坯,我火速辦了婚禮,結(jié)果婚禮上拔稳,老公的妹妹穿的比我還像新娘葛峻。我一直安慰自己,他們只是感情好巴比,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布术奖。 她就那樣靜靜地躺著,像睡著了一般轻绞。 火紅的嫁衣襯著肌膚如雪采记。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天政勃,我揣著相機(jī)與錄音唧龄,去河邊找鬼。 笑死稼病,一個(gè)胖子當(dāng)著我的面吹牛选侨,可吹牛的內(nèi)容都是我干的掖鱼。 我是一名探鬼主播然走,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼戏挡!你這毒婦竟也來了芍瑞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤褐墅,失蹤者是張志新(化名)和其女友劉穎拆檬,沒想到半個(gè)月后洪己,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竟贯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年答捕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屑那。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拱镐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出持际,到底是詐尸還是另有隱情沃琅,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布蜘欲,位于F島的核電站益眉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏姥份。R本人自食惡果不足惜郭脂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殿衰。 院中可真熱鬧朱庆,春花似錦、人聲如沸闷祥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凯砍。三九已至箱硕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悟衩,已是汗流浹背剧罩。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留座泳,地道東北人惠昔。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像挑势,于是被迫代替她去往敵國和親镇防。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 幾種語言的特性 匯編程序:將匯編語言源程序翻譯成目標(biāo)程序編譯程序:將高級(jí)語言源程序翻譯成目標(biāo)程序解釋程序:將高級(jí)語...
    囊螢映雪的螢閱讀 2,871評(píng)論 1 5
  • 最近清明上墳,往年不在家也就罷了。既然回來了啦扬,該盡的義務(wù)還是要盡的中狂。 接到媽媽的電話,放下手頭的工作扑毡,往回趕胃榕。在去...
    滴滴噠閱讀 115評(píng)論 0 0
  • 被風(fēng)侵蝕的土地, 雕琢出山的模樣瞄摊, 山與山的對(duì)白勤晚, 丘與丘的言語, 傷佛與藍(lán)天在對(duì)話泉褐, 與白云在對(duì)話赐写, 與北方在對(duì)...
    二馬行空閱讀 193評(píng)論 0 5
  • 對(duì)你 時(shí)常是恨鐵不成鋼的感覺 看你們挺好的 我整個(gè)人就不好了
    王哲楓7閱讀 143評(píng)論 0 0
  • 兒子的幼兒園每年都在南方軟件園舉報(bào)迎新年音樂會(huì),所以在這之前他們往往要排練上好多個(gè)日子膜赃。 那首 The sailo...
    大力穩(wěn)重閱讀 271評(píng)論 1 9