女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

程序中內(nèi)存應該如何分配?怎樣進行動態(tài)內(nèi)存分配?

Q4MP_gh_c472c21 ? 來源:未知 ? 作者:易水寒 ? 2018-08-12 10:52 ? 次閱讀

程序在內(nèi)存中是分段存儲的。

代碼段:存放語句轉(zhuǎn)換的數(shù)字;程序運行時不可修改;全局段:用來記錄全局變量和靜態(tài)變量的存儲位置;不會隨著程序的運行而改變;棧:存放局部變量,塊變量,形式參數(shù)和返回值的存儲位置;隨著程序的運行其大小將不斷改變;函數(shù)調(diào)用時,開辟空間,函數(shù)調(diào)用結(jié)束收回其空間;不同調(diào)用函數(shù)之間遵循后進先出的原則。堆:存放動態(tài)分布的存儲位置;

一:傳統(tǒng)數(shù)組(靜態(tài)數(shù)組)的缺點

1:數(shù)組的長度必須事先指定,并且是常整數(shù),不能是變量 int a[5];2:傳統(tǒng)數(shù)組程序員無法由程序員釋放,只能由系統(tǒng)釋放。(并且只能在數(shù)組所在函數(shù)結(jié)束才能釋放)3:數(shù)組的長度在函數(shù)運行期間不能動態(tài)的擴充和縮小4:A函數(shù)定義的傳統(tǒng)數(shù)組,在A函數(shù)結(jié)束時,在B函數(shù)中是不能使用的,因為已經(jīng)釋放。也就是傳統(tǒng)數(shù)組不能跨函數(shù)。

區(qū)分:靜態(tài)存儲與內(nèi)存的靜態(tài)開辟

二:為什么要動態(tài)分配內(nèi)存

用來解決傳統(tǒng)數(shù)組的四個缺陷

三:動態(tài)內(nèi)存分配舉例,以及動態(tài)數(shù)組的構(gòu)造

方式:malloc函數(shù),在堆開辟空間

1:malloc是由程序員在堆棧動態(tài)開辟空間2:返回值開辟空間的首地址,但是類型是void *,需要強制類型轉(zhuǎn)換3:分配的內(nèi)存空間應該能整除類型所占的字節(jié)數(shù)4:包含頭文件malloc.h5:只能用free(p)來釋放p所指向的動態(tài)開辟的內(nèi)存空間。6:對動態(tài)內(nèi)存空間的操作,用*p來操作。7:可以用多個指針指向這個動態(tài)空間8:當有多個指針只向這個動態(tài)空間時,只能用free一個指針,多次重復釋放要被報錯9:可以將動態(tài)開辟的的內(nèi)存指針作為函數(shù)參數(shù)

問題:p的分配類型是動態(tài)的還是靜態(tài)的?當調(diào)用free(p)后,p的內(nèi)存空間會被釋放么?例子:動態(tài)構(gòu)建一個一維數(shù)組:

動態(tài)擴充數(shù)組的長度,也就是在程序運行時動態(tài)擴充:realloc(首地址,總共字節(jié)數(shù))作用:將原來動態(tài)開辟的動態(tài)內(nèi)存重新開辟一個字節(jié)數(shù),如果這個數(shù)比以前的大,前面的數(shù)據(jù)保存。如果比原來的小,保留前面的數(shù)據(jù)。

注意:擴充或者縮放的內(nèi)存單元是新開辟的內(nèi)存單元。這個過程中有值的拷貝過程。返回值是新開辟的地址空間首地址。

四:靜態(tài)內(nèi)存和動態(tài)內(nèi)存的比較

靜態(tài)開辟的內(nèi)存:在棧中開辟,由編譯器分配,由系統(tǒng)自動釋放動態(tài)開辟的內(nèi)存:在堆中開辟,由程序員開辟,由程序員自動釋放。

五:跨函數(shù)使用內(nèi)存的問題

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)存
    +關注

    關注

    8

    文章

    3109

    瀏覽量

    75005
  • 程序
    +關注

    關注

    117

    文章

    3824

    瀏覽量

    82450
  • 代碼
    +關注

    關注

    30

    文章

    4888

    瀏覽量

    70274

原文標題:談談內(nèi)存分配與動態(tài)內(nèi)存分配

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    動態(tài)內(nèi)存管理模塊的設計原理與實現(xiàn)

    Fense 通過設立一個雙向鏈表(struct Head *stHead)來保存所有被分配動態(tài)內(nèi)存塊的信息。鏈表的每個節(jié)點對應一個動態(tài)內(nèi)存塊,節(jié)點中包括此
    的頭像 發(fā)表于 06-30 08:05 ?2571次閱讀
    <b class='flag-5'>動態(tài)內(nèi)存</b>管理模塊的設計原理與實現(xiàn)

    C語言知識總結(jié):動態(tài)內(nèi)存分配

    動態(tài)內(nèi)存分配就 是指在程序執(zhí)行的過程動態(tài)分配或者回收存儲空間的
    發(fā)表于 10-24 15:52 ?1011次閱讀

    使用C語言實現(xiàn)簡單動態(tài)內(nèi)存分配

    首先要明白為何需要動態(tài)內(nèi)存分配,熟悉C語言的讀者應該對這個比較熟悉,需要一段內(nèi)存時會使用malloc函數(shù)來申請所需要大小的內(nèi)存,函數(shù)返回一段
    發(fā)表于 07-28 16:26 ?828次閱讀
    使用C語言實現(xiàn)簡單<b class='flag-5'>動態(tài)內(nèi)存</b><b class='flag-5'>分配</b>

    C語言程序設計動態(tài)內(nèi)存分配如何實現(xiàn)

    C語言程序設計動態(tài)內(nèi)存分配如何實現(xiàn),需要注意哪些問題?
    發(fā)表于 09-28 16:53 ?1686次閱讀

    內(nèi)存動態(tài)內(nèi)存分配實現(xiàn)

    第27章 STM32H7的TCM,SRAM等五塊內(nèi)存動態(tài)內(nèi)存分配實現(xiàn)本章教程為大家分享一種DTCM,SRAM1,SRAM2,SRAM3和SRAM4可以獨立管理的動態(tài)內(nèi)存管理方案,在實
    發(fā)表于 08-03 07:14

    如何分配STM32H7TCM,SRAM等五塊內(nèi)存動態(tài)內(nèi)存

    如何分配STM32H7TCM,SRAM等五塊內(nèi)存動態(tài)內(nèi)存
    發(fā)表于 10-13 07:23

    怎樣去定義CDC所需要的動態(tài)內(nèi)存分配函數(shù)呢

    為什么使用動態(tài)內(nèi)存分配的CDC驅(qū)動自動生成的代碼不能正常工作呢?怎樣去定義CDC所需要的動態(tài)內(nèi)存分配函數(shù)呢?
    發(fā)表于 12-06 07:04

    嵌入式C語言動態(tài)內(nèi)存分配

    動態(tài)內(nèi)存分配:1、malloc、memset、free在日常寫代碼時需要注意以下幾點:malloc分配內(nèi)存時,需要 if語句 判斷malloc是否成功
    發(fā)表于 12-14 06:37

    請問使用動態(tài)內(nèi)存分配安全嗎?

    想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”使用動態(tài)內(nèi)存分配安全嗎?在C語言
    發(fā)表于 12-15 06:10

    使用動態(tài)內(nèi)存分配安全嗎

    安全嗎?”為了更加安全穩(wěn)定,美國軍方禁止在C語言程序中使用malloc()使用動態(tài)內(nèi)存分配安全嗎?在C語言程序開發(fā)
    發(fā)表于 12-15 07:44

    動態(tài)內(nèi)存分配是什么意思

    所謂動態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程動態(tài)分配
    發(fā)表于 12-17 08:17

    RTThread的動態(tài)內(nèi)存空間該如何去分配

    的Heap_Size,而使用rt_malloc申請到的則是RTT分配的空間然后有以下幾個問題1、如果是動態(tài)創(chuàng)建線程,那線程的局部變量是位于RTT分配
    發(fā)表于 08-31 14:34

    嵌入式需要用到動態(tài)內(nèi)存

    所謂動態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程動態(tài)分配
    的頭像 發(fā)表于 07-27 08:11 ?3231次閱讀

    靜、動態(tài)內(nèi)存的優(yōu)劣比較

    動態(tài)內(nèi)存分配不像數(shù)組等靜態(tài)內(nèi)存分配方法那樣需要預先分配存儲空間,而是由系統(tǒng)根據(jù)程序的需要即時
    的頭像 發(fā)表于 08-06 18:25 ?6998次閱讀

    嵌入式C語言中的動態(tài)內(nèi)存管理和動態(tài)內(nèi)存分配

    動態(tài)內(nèi)存管理同時還具有一個優(yōu)點:當程序在具有更多內(nèi)存的系統(tǒng)上需要處理更多數(shù)據(jù)時,不需要重寫程序
    發(fā)表于 08-15 17:16 ?2472次閱讀