在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

C語言中的動態內存管理講解

單片機與嵌入式 ? 來源:單片機與嵌入式 ? 2024-02-23 14:03 ? 次閱讀

本章將講解 C 中的動態內存管理。C 語言為內存的分配和管理提供了幾個函數。這些函數可以在頭文件中找到。

11414b16-d1fd-11ee-a297-92fbcf53809c.png

1162fc48-d1fd-11ee-a297-92fbcf53809c.png

char name[100];

但是,如果您預先不知道需要存儲的文本長度,例如您向存儲有關一個主題的詳細描述。在這里,我們需要定義一個指針,該指針指向未定義所需內存大小的字符,后續再根據需求來分配內存,如下所示:

#include

#include

#include int main()

{ char name[100];

char *description; strcpy(name, "Zara Ali"); /* 動態分配內存 */ description = (char *)malloc( 200 * sizeof(char) );

if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memoryn");

} else { strcpy( description, "Zara ali a DPS student in class 10th");

} printf("Name = %sn", name );

printf("Description: %sn", description );

}

當上面的代碼被編譯和執行時,它會產生下列結果:

Name = Zara Ali
Description: Zara ali a DPS student in class 10th

上面的程序也可以使用calloc()來編寫,只需要把 malloc 替換為 calloc 即可,如下所示:

calloc(200, sizeof(char));

當動態分配內存時,您有完全控制權,可以傳遞任何大小的值。而那些預先定義了大小的數組,一旦定義則無法改變大小。

1182c3d4-d1fd-11ee-a297-92fbcf53809c.png

#include

#include

#include int main()

{ char name[100];

char *description; strcpy(name, "Zara Ali"); /* 動態分配內存 */ description = (char *)malloc( 30 * sizeof(char) );

if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memoryn");

} else { strcpy( description, "Zara ali a DPS student.");

} /* 假設您想要存儲更大的描述信息 */ description = realloc( description, 100 * sizeof(char) );

if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memoryn");

} else { strcat( description, "She is in class 10th");

} printf("Name = %sn", name );

printf("Description: %sn", description ); /* 使用 free() 函數釋放內存 */ free(description);

}

當上面的代碼被編譯和執行時,它會產生下列結果:

Name = Zara Ali
Description: Zara ali a DPS student.She is in class 10th

您可以嘗試一下不重新分配額外的內存,strcat() 函數會生成一個錯誤,因為存儲 description 時可用的內存不足。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137714
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62971
  • 內存管理
    +關注

    關注

    0

    文章

    168

    瀏覽量

    14190

原文標題:C語言中的內存管理

文章出處:【微信號:單片機與嵌入式,微信公眾號:單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    動態內存管理模塊的設計原理與實現

    Fense 通過設立一個雙向鏈表(struct Head *stHead)來保存所有被分配的動態內存塊的信息。鏈表中的每個節點對應一個動態內存塊,節點中包括此內存大小、分配發生時所在的源文件名和行號
    的頭像 發表于 06-30 08:05 ?2403次閱讀
    <b class='flag-5'>動態內存</b><b class='flag-5'>管理</b>模塊的設計原理與實現

    C語言知識總結:動態內存分配

    動態內存分配就 是指在程序執行的過程中動態地分配或者回收存儲空間的分配內存的方法。動態內存分配不像數組等靜態內存分配方法那樣需要預先分配存儲
    發表于 10-24 15:52 ?898次閱讀

    使用C語言實現簡單動態內存分配

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

    C語言中動態內存管理知識

    概述:C語言的優勢是可以直接訪問內存地址,也就是指針操作,但其缺陷也是因為直接內存訪問。如何通過防御性編程提前發現問題,盡可能減少內存異常產
    發表于 09-22 09:54 ?579次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的<b class='flag-5'>動態內存</b><b class='flag-5'>管理</b>知識

    C語言程序設計中動態內存分配如何實現

    C語言程序設計中,動態內存分配如何實現,需要注意哪些問題?
    發表于 09-28 16:53 ?1455次閱讀

    第28章 FreeRTOS動態內存管理

    轉: 本章節為大家講解FreeRTOS動態內存管理,動態內存管理是FreeRTOS非常重要的一項功能,前面章節
    發表于 09-11 07:15

    動態內存管理的原理詳解

    C/C++語言與其他語言不同,它需要開發者自己管理內存資源。對于
    發表于 11-02 09:25

    【原創】C語言中動態內存-----棧內存

    作者:蔡琰老師(張飛實戰電子高級工程師)C語言程序的動態內存分為棧內存區域和堆內存區域兩種。棧內存
    發表于 07-07 14:18

    請問使用動態內存分配安全嗎?

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

    使用動態內存分配安全嗎

    [導讀]想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態內存分配安全嗎?”想在C語言程序員之間開始一個激烈
    發表于 12-15 07:44

    一個動態內存管理模塊的實現

    介紹一個動態內存管理模塊,可以有效地檢測C程序中內存泄漏和寫內存越界等錯誤,適用于具有標準C
    發表于 04-16 14:18 ?14次下載

    一個動態內存管理模塊的實現

    介紹一個動態內存管理模塊,可以有效地檢測C程序中內存泄漏和寫內存越界等錯誤,適用于具有標準C
    發表于 05-14 14:39 ?10次下載

    動態內存錯誤的靜態檢測

    內存泄漏、空指針引用等動態內存錯誤在/,/LL等支持動態內存操作的程序中普遍存在在程序中,動態內存管理錯誤是導致
    發表于 06-10 16:29 ?52次下載
    <b class='flag-5'>動態內存</b>錯誤的靜態檢測

    C語言中動態內存管理

    但是,如果您預先不知道需要存儲的文本長度,例如您向存儲有關一個主題的詳細描述。在這里,我們需要定義一個指針,該指針指向未定義所需內存大小的字符,后續再根據需求來分配內存,如下所示:
    的頭像 發表于 11-12 14:46 ?3093次閱讀

    嵌入式C語言中動態內存管理動態內存分配

    動態內存管理同時還具有一個優點:當程序在具有更多內存的系統上需要處理更多數據時,不需要重寫程序。
    發表于 08-15 17:16 ?2323次閱讀
    主站蜘蛛池模板: 人操人爱 | 四虎东方va私人影库在线观看 | 操干干| 色综合天天综合网国产成人网 | 狠狠狠色丁香婷婷综合久久五月 | 精品综合久久久久久98 | 韩国三级中文字幕hd | 免费国产网站 | 色狠狠色综合久久8狠狠色 色狠狠网 | 美女国产在线观看免费观看 | 97se亚洲综合 | 国产一区二区在线不卡 | 一区国产传媒国产精品 | 黄色刺激网站 | 久久精品免看国产 | 亚洲免费视频一区 | 黄色特级毛片 | 日本黄色激情视频 | 噜噜影院无毒不卡 | 国产精品欧美激情在线播放 | 不卡视频一区二区三区 | 国产精品 色 | 精品一区亚洲 | 一区二区三区视频网站 | 永井玛丽亚中文在线观看视频 | 不卡免费在线视频 | 免费能直接在线观看黄的视频 | 国产男女交性视频播放免费bd | 天堂一区二区三区在线观看 | 女人aaaaa片一级一毛片 | 亚洲理论在线 | 亚洲综合激情六月婷婷在线观看 | 秋霞麻豆| 性喷潮久久久久久久久 | 在线天堂资源www中文在线 | 婷婷亚洲综合五月天在线 | 一级伦奸视频 | 久久瑟| 欧美性极品hd高清视频 | 米奇影院777| 91精品日本久久久久久牛牛 |