void *calloc(int num, int size);
在記憶體中動態地分配 num 個長度為 size 的連續空間,並將每乙個位元組都初始化為 0。所以它的結果是分配了 num*size 個位元組長度的記憶體空間,並且每個位元組的值都是0。
void free(void *address);
該函式釋放 address 所指向的記憶體塊,釋放的是動態分配的記憶體空間。
void *malloc(int num);
在堆區分配一塊指定大小的記憶體『空間,用來存放資料。這塊記憶體空間在函式執行完成後不會被初始化,它們的值是未知的。
void *realloc(void *address, int newsize);
該函式重新分配記憶體,把記憶體擴充套件到newsize。
指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。就像其他變數或常量一樣,您必須在使用指標儲存其他變數位址之前,對其進行宣告。指標變數宣告的一般形式為:
int *i
比如
int i = 20; /* 實際變數的宣告 */
int *t; /* 指標變數的宣告 */
t = &i; /* 在指標變數中儲存 var 的位址 */
首先結構體做函式引數有三種傳遞方式:
一是傳遞結構體變數,這是值傳遞,
二是傳遞結構體指標,這是位址傳遞,
三是傳遞結構體成員,當然這也分為值傳遞和位址傳遞。
以傳引用呼叫方式傳遞結構比用傳值方式傳遞結構效率高。以傳值方式傳遞結構需要對整個結構做乙份拷貝。
嵌入式第三次作業
在嵌入式系統的程式設計中,常常要求在特定的記憶體單元讀寫內容,彙編有對應的mov指令,而除c c 以外的其它程式語言基本沒有直接訪問絕對位址的能力。在嵌入式系統的實際除錯中,多借助c語言指標所具有的對絕對位址單元內容的讀寫能力。以指標直接操作記憶體多發生在如下幾種情況 1 某i o晶元被定位在cpu...
嵌入式C學習第三次任務
指令 描述void calloc int num,int size 在記憶體中動態地分配 num 個長度為 size 的連續空間,並將每乙個位元組都初始化為 0。所以它的結果是分配了 num size 個位元組長度的記憶體空間,並且每個位元組的值都是0。void free void address ...
嵌入式技術第三次課堂筆記
今日課堂目標 嵌入式linux開發工具 vim gcc gdb make vim文字編輯器 學會使用和如何配置vim gcc編譯器 學會製作動態庫和靜態庫及使用與區別 gdb偵錯程式 設定斷點 單步執行 除錯記憶體錯誤 make工程管理器 編寫makefile檔案 首先是linux文字編輯器,vim...