最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言動態(tài)內(nèi)存管理介紹

 更新時間:2021年12月31日 09:10:30   作者:心在南  
大家好,本篇文章主要講的是C語言動態(tài)內(nèi)存管理介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

前言:

簡單記錄一下,內(nèi)存管理函數(shù)

為什么使用動態(tài)內(nèi)存呢?
簡單理解就是可以最大限度調(diào)用內(nèi)存
用多少生成多少,不用時就釋放而靜止內(nèi)存不能釋放
動態(tài)可避免運行大程序?qū)е聝?nèi)存溢出

C 語言為內(nèi)存的分配和管理提供了幾個函數(shù):

頭文件:<stdlib.h>

注意:void * 類型表示未確定類型的指針?

1.malloc() 用法

?分配一塊大小為 num 的內(nèi)存空間

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
    char name[12];
    char *test;
 
    strcpy(name, "KiKiNiNi");
 
    // 動態(tài)分配內(nèi)存
    test = (char *) malloc(26 * sizeof(char));
 
    // (void *) malloc(int num) -> num = 26 * sizeof(char)
    // void * 表示 未確定類型的指針
    // 分配了一塊內(nèi)存空間 大小為 num 存放值是未知的
 
    if (test == NULL) {
        fprintf(stderr, "Error - unable to allocate required memory\n");
    } else {
        strcpy(test, "Maybe just like that!");
    }
 
    printf("Name = %s\n", name);
    printf("Test: %s\n", test);
 
    return 0;
}
 
// 運行結(jié)果
// Name = KiKiNiNi
// Test: Maybe just like that!

2.calloc() 用法

?分配 num 個長度為 size 的連續(xù)空間

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
    char name[12];
    char *test;
 
    strcpy(name, "KiKiNiNi");
 
    // 動態(tài)分配內(nèi)存
    test = (void *) calloc(26, sizeof(char));
 
    // (void *) calloc(int num, int size) -> num = 26 / size = sizeof(char)
    // void * 表示 未確定類型的指針
    // 分配了 num 個 大小為 size 的連續(xù)空間 存放值初始化為 0
 
    if (test == NULL) {
        fprintf(stderr, "Error - unable to allocate required memory\n");
    } else {
        strcpy(test, "Maybe just like that!");
    }
 
    printf("Name = %s\n", name);
    printf("Test: %s\n", test);
 
    return 0;
}
 
// 運行結(jié)果
// Name = KiKiNiNi
// Test: Maybe just like that!

3.realloc() 與 free() 用法

重新調(diào)整內(nèi)存的大小和釋放內(nèi)存

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
    char name[12];
    char *test;
 
    strcpy(name, "KiKiNiNi");
 
    // 動態(tài)分配內(nèi)存
    test = (char *) malloc(26 * sizeof(char));
 
    // (void *) malloc(int num) -> num = 26 * sizeof(char)
    // void * 表示 未確定類型的指針
    // 分配了一塊內(nèi)存空間 大小為 num 存放值是未知的
 
    if (test == NULL) {
        fprintf(stderr, "Error - unable to allocate required memory\n");
    } else {
        strcpy(test, "Maybe just like that!");
    }
 
    /* 假設(shè)您想要存儲更大的描述信息 */
    test = (char *) realloc(test, 100 * sizeof(char));
    if (test == NULL) {
        fprintf(stderr, "Error - unable to allocate required memory\n");
    } else {
        strcat(test, " It's a habit to love her.");
    }
 
    printf("Name = %s\n", name);
    printf("Test: %s\n", test);
 
    // 釋放 test 內(nèi)存空間
    free(test);
 
    return 0;
}
 
// 運行結(jié)果
// Name = KiKiNiNi
// Test: Maybe just like that! It's a habit to love her.

到此這篇關(guān)于C語言動態(tài)內(nèi)存管理介紹的文章就介紹到這了,更多相關(guān)C語言動態(tài)內(nèi)存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 使用模板實現(xiàn)一個List的實例

    C++ 使用模板實現(xiàn)一個List的實例

    這篇文章主要介紹了 C++ 使用模板實現(xiàn)一個List的實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C++ 數(shù)據(jù)結(jié)構(gòu)之對稱矩陣及稀疏矩陣的壓縮存儲

    C++ 數(shù)據(jù)結(jié)構(gòu)之對稱矩陣及稀疏矩陣的壓縮存儲

    這篇文章主要介紹了C++ 數(shù)據(jù)結(jié)構(gòu)之對稱矩陣及稀疏矩陣的壓縮存儲的相關(guān)資料,這里實現(xiàn)稀疏矩陣和對稱矩陣的壓縮存儲的實例,需要的朋友可以參考下
    2017-08-08
  • C/C++函數(shù)調(diào)用的幾種方式總結(jié)

    C/C++函數(shù)調(diào)用的幾種方式總結(jié)

    本篇文章主要是對C/C++函數(shù)調(diào)用的幾種方式進行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 詳解C++11強類型枚舉

    詳解C++11強類型枚舉

    這篇文章主要介紹了C++11強類型枚舉的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++11,感興趣的朋友可以了解下
    2020-08-08
  • java string對象上的操作,常見的用法你知道嗎

    java string對象上的操作,常見的用法你知道嗎

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java String類用法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-08-08
  • QT利用QProcess獲取計算機硬件信息

    QT利用QProcess獲取計算機硬件信息

    本文介紹利用QProcess獲取計算機的CPU、主板、硬盤等電腦相關(guān)硬件信息。文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)QT有一定的幫助,感興趣的可以了解一下
    2022-06-06
  • C語言實現(xiàn)為無聲avi視頻添加wave音樂

    C語言實現(xiàn)為無聲avi視頻添加wave音樂

    這篇文章主要為大家詳細(xì)介紹了C語言如何實現(xiàn)為無聲avi視頻添加wave音樂,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴可以了解一下
    2023-11-11
  • C++ getline函數(shù)用法詳解

    C++ getline函數(shù)用法詳解

    這篇文章主要介紹了C++ getline函數(shù)用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MFC自定義消息的實現(xiàn)方法

    MFC自定義消息的實現(xiàn)方法

    這篇文章主要介紹了MFC自定義消息的實現(xiàn)方法,通過該示例可以更好的理解MFC的消息封裝機制,以便更加靈活的打造個性化的windows應(yīng)用程序,需要的朋友可以參考下
    2014-07-07
  • c語言指針之二級指針示例

    c語言指針之二級指針示例

    這篇文章主要介紹了c語言指針中的二級指針示例,需要的朋友可以參考下
    2014-04-04

最新評論

桃江县| 宜城市| 麻城市| 元氏县| 安徽省| 达孜县| 涿州市| 阿图什市| 西平县| 芮城县| 车致| 开江县| 庄河市| 天祝| 老河口市| 武山县| 达拉特旗| 洪洞县| 自贡市| 汝城县| 澜沧| 开原市| 鄱阳县| 洛扎县| 万全县| 延寿县| 广宁县| 宣城市| 建始县| 嘉峪关市| 洪湖市| 探索| 金塔县| 永福县| 汨罗市| 沙田区| 庆阳市| 兖州市| 莲花县| 浑源县| 上饶县|