動態內存分配

    在編程中有時候你需要分配一下內存但是你事先有不知道分配多少,那怎麼辦呢,就需要動態分配內存。

    C函數庫提供了兩個函數 malloc  和  free  這兩個函數是做內存分配和 內存釋放。

    函數原型如下:

    void  *malloc( size_t  size );

    void  free( void  *pointer );

    如果分配不出內存了 malloc 函數就會返回NULL 指針。

    free 的參數要麼是 NULL,要麼是之前分配的。

   

    還有兩個函數 calloc   realloc

    calloc 也用於內存分配,和malloc之間的區別是,calloc 在返回內存的時候會把返回值指向的地址先初始化爲0再返回。

    realloc用於把之前分配的內存大小進行修改。不過不太常用。

   

代碼

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

int main(void)
{
    int i;
    int *pi = malloc( 10*sizeof( int ) );
    for(i=0; i<10; i++)
    {
        pi[i] = 2*i;
    }    
    for(i=0; i<10; i++)
    {
        printf("賦值的是%d\n", pi[i]);
    }        
    free(pi);
    return 0;
}


執行效果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章