久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7148|回復(fù): 0
收起左側(cè)

什么是“堆”和“棧”? 動態(tài)內(nèi)存分配?

[復(fù)制鏈接]
ID:91442 發(fā)表于 2015-10-29 15:33 | 顯示全部樓層 |閱讀模式
文章目錄:
解析uc/os-ii操作系統(tǒng)之-寫在前面:http://m.zg4o1577.cn/bbs/dpj-39350-1.html
解析uc/os-ii操作系統(tǒng)--之創(chuàng)建一個單向鏈表:http://m.zg4o1577.cn/bbs/dpj-39833-1.html
單向鏈表之--添加結(jié)點的程序詳解:http://m.zg4o1577.cn/bbs/dpj-39834-1.html
什么是“堆”和“棧”? 動態(tài)內(nèi)存分配? :http://m.zg4o1577.cn/bbs/dpj-39835-1.html
C語言函數(shù)指針,函數(shù)動態(tài)回調(diào):http://m.zg4o1577.cn/bbs/dpj-39836-1.html

      什么是“堆”和“棧”? 什么是動態(tài)內(nèi)存分配?為什么需要動態(tài)內(nèi)存分配?動態(tài)內(nèi)存分配與靜態(tài)內(nèi)存分配有什么區(qū)別?到底什么是指針?我堅信通過本例程能夠?qū)@些問題有很深的理解。本例程很簡單,卻是很有深度!當(dāng)然比起前面的鏈表例程那就簡單多了。

        什么叫編程?答案有很多。我更認(rèn)同“編程就是數(shù)據(jù)結(jié)構(gòu)+算法”的觀點。如果不能正真搞懂C語言,所謂的嵌入式開發(fā)就很難學(xué)得好。學(xué)習(xí)C語言干什么?計算機語言是用來模擬現(xiàn)實世界的,是用來解決現(xiàn)實生活中的問題的。

      下面的例子可以在VC++6.0編譯平臺運行仿真:

#include "stdio.h"#include "stdlib.h"
/*
“棧”和“堆”存在于內(nèi)存中的不同地址處,即存在于不同的存儲區(qū)。

什么是棧空間?棧空間是靜態(tài)內(nèi)存分配,空間大小由編譯器決定;靜態(tài)分配的內(nèi)存在“棧”里,程序運行結(jié)束由系統(tǒng)
自動釋放;函數(shù)運行時的臨時數(shù)據(jù)和以如“char A;”形式聲明的變量空間都屬于靜態(tài)內(nèi)存,存儲在“棧”里,“棧”
是一種先進后出“FILO”的數(shù)據(jù)結(jié)構(gòu);所謂“靜態(tài)”是指數(shù)據(jù)結(jié)構(gòu)一旦聲明內(nèi)存空間就固定不變。

什么是堆空間?堆空間由動態(tài)內(nèi)存分配,大小由運行時malloc()函數(shù)(或new())靈活決定;空間大小根據(jù)實際需要靈活把握;
malloc()函數(shù)動態(tài)分配的空間在“堆”里;malloc()函數(shù)動態(tài)分配的空間必須由程序員通過free()函數(shù)(delete())釋放,否則可能會造成內(nèi)存泄露!是一種先進先出“FIFO”的數(shù)據(jù)結(jié)構(gòu);如,“隊列”;

  如,static int=9;//int類型9,存儲在棧里

*/
int main(void)
{
  // char buf[10000];
   int i=0;
   int n;
  
   while(i++<2)//這里i表示循環(huán)兩次,也就是說 scanf("%s",buf);操作少于2次!
   {
     scanf("%d",&n);//給n動態(tài)賦值
     char * buf = (char*)malloc(n+1);//一定要強制類型轉(zhuǎn)換,否則報錯!
         if(!buf)//相當(dāng)于JAVA里的拋出異常,如果動態(tài)內(nèi)存分配失敗
         {
                 perror("malloc");
                 exit(-1);//#include "stdlib.h",屬于C語言庫函數(shù),退出該進程
         }
     scanf("%s",buf);//給buf空間賦值以字符串
     printf("%s\n",buf);//打印出字符串
     free(buf); //將動態(tài)空間及時釋放,如果不及時釋放或?qū)⒃撜Z句注釋掉會怎樣呢?通過仿真發(fā)現(xiàn)無法打印出結(jié)果!
   
   }
  return 0;
}

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩久久 | 日韩精品视频一区二区三区 | www.久久精品 | 亚洲天堂视频在线 | 国产一级片免费 | 日韩欧美精品一区二区 | 欧美一级淫片bbb一84 | 一级做a视频 | 国产激情网站 | 中文字幕自拍 | 国产精品99精品久久免费 | 日日操天天操 | 日韩在线播放视频 | 久热中文字幕 | 精品亚洲一区二区 | 在线精品一区 | 毛片免费在线观看 | 精品一区二区三 | 午夜av片 | 一本色道久久综合亚洲精品酒店 | 国产成人综合视频 | 黄色一级在线观看 | 伊人精品视频 | 日本久久精品视频 | 日韩少妇av | 视频一区二区三区在线观看 | 中文字幕综合网 | 免费看黄色网址 | 亚洲精彩视频 | a级片网站 | 日韩在线高清 | 亚洲在线视频观看 | 日韩精品无| 成年人黄色片 | 美女视频福利 | 国产三级成人 | 精品一区二区三区视频 | 久久久久久久久国产 | 亚洲亚洲人成综合网络 | 性大毛片视频 | 一级黄色在线观看 |