中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

C庫中的malloc()函數(shù)及其示例

發(fā)布于:2021-02-07 14:10:20

0

723

0

C malloc() 示例 數(shù)據(jù)庫

C中的malloc是什么?

malloc()函數(shù)代表內(nèi)存分配。它是一個用于動態(tài)分配內(nèi)存塊的函數(shù)。它保留指定大小的內(nèi)存空間,并返回指向內(nèi)存位置的空指針。返回的指針通常是void類型。這意味著我們可以將malloc函數(shù)分配給任何指針。

語法

ptr = (cast_type *) malloc (byte_size);

  • ptr是一個cast類型的指針。

  • malloc函數(shù)返回一個指向字節(jié)大小的分配內(nèi)存的指針。

Example: ptr = (int *) malloc (50)

當(dāng)此語句成功執(zhí)行時,將保留50字節(jié)的內(nèi)存空間。保留空間的第一個字節(jié)的地址分配給int類型的指針ptr。

考慮malloc實現(xiàn)的另一個示例:

#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
   if (ptr != NULL) {
     *(ptr + 5) = 480; /* assign 480 to sixth integer */
     printf("Value of the 6th integer is %d",*(ptr + 5));
   }
}

輸出:

Value of the 6th integer is 480

  1. 注意,sizeof(*ptr)被用來代替sizeof(int),以便在以后將*ptr聲明類型轉(zhuǎn)換為不同的數(shù)據(jù)類型時使代碼更加健壯。

  2. 如果內(nèi)存不足,分配可能會失敗。在本例中,它返回一個空指針。因此,應(yīng)該包含檢查空指針的代碼。

  3. 請記住,分配的內(nèi)存是連續(xù)的,可以將其視為數(shù)組。我們可以使用指針?biāo)惴▉碓L問數(shù)組元素,而不是使用括號[]。我們建議使用+來引用數(shù)組元素,因為使用incrementation++或+=會更改指針存儲的地址。

Malloc函數(shù)還可以用于字符數(shù)據(jù)類型以及復(fù)雜數(shù)據(jù)類型(如結(jié)構(gòu))。