1. 程式人生 > >在malloc函式中為什麼常用sizeof來設定記憶體分配的大小?

在malloc函式中為什麼常用sizeof來設定記憶體分配的大小?

             在malloc函式中為什麼常用sizeof來設定記憶體分配的大小?

例子:為40個整數變數分配記憶體並賦值,然後系統在收回這些記憶體。 

#include<stdlib.h>
#include<stdio.h>

void main()
{
    int *p;
    p = (int *)malloc(40*sizeof(int));//用sizeof(int)計算int型別資料的位元組數
    if(!p)
        {
          printf("記憶體已用完");
          exit(0); 
        }
    printf("OK");
    
    free(p);

}

程式中用了sizeof以保證此程式可以移植到其他系統上去。 

注意:

(1)malloc(8)表示:開闢一個長度為8個位元組的記憶體空間。 

(2)sizeof()功能是返回一個變數或者型別的大小,以位元組為單位,對 sizeof() 的處理都是在編譯階段進行。