search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

一把梭系列 ~ C語言範例 (0019) [指標與動態配置記憶體 – malloc、free] – jashliao部落格

一把梭系列 ~ C語言範例 (0019) [指標與動態配置記憶體 – malloc、free]


資料來源: https://openhome.cc/Gossip/CGossip/MallocFree.html

https://www.cplusplus.com/reference/cstdlib/malloc/
https://www.cplusplus.com/reference/cstdlib/free/


線上執行: https://www.tutorialspoint.com/compile_c_online.php

★前言:

★主題:

    C/C++一般陣列的大小必須在宣告時就明確告知,但有些程式情況卻無滿足該條件

01.動態配置記憶體

void* malloc (size_t size);

void* malloc (size_t size);


02.釋放動態配置記憶體

void free (void* ptr);


★code

#include       /* printf, scanf, NULL */
#include      /* malloc, free, rand */
#include        /* time */

int main ()
{
    int i,n;
    char *buffer='\0';

    printf ("How long do you want the string? ");
    scanf ("%d", &i);

    buffer = (char *) malloc (sizeof(char)*(i+1));
    if (buffer=='\0') exit (1);

    srand (time(NULL));//初始亂數種子
    for (n=0; n

★結果:


★延伸說明/重點回顧:


    01.C/C++一般陣列的大小必須在宣告時就明確告知,但有些程式情況卻無滿足該條件,此時就是要使用動態配置來解決。


    02.『動態配置記憶』雖然很方便,但是這也是一把雙面刃,如果沒有對稱(成對)的使用『釋放動態配置記憶』就會造成『記憶體洩漏』的問題,如果情況嚴重可能會造成程式錯誤,必須非常小心使用




熱門推薦

本文由 jashliaoeuwordpress 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦