搜尋此網誌

2011年8月26日 星期五

C 雙重指標

雙重指標:a pointer to a pointer,意思就是存了一個記憶體位址的指標.

i.e




#include <stdlib.h>
#include <stdio.h>
void doublePointerPractice();

struct people{
    char name;
    int id;
};

typedef struct people * PeoplePtr;

int main(void){

    doublePointerPractice();
    return 0;

}

void doublePointerPractice(){

    PeoplePtr peoplePtr = (PeoplePtr)malloc(sizeof(PeoplePtr));
    peoplePtr->id = 12345;
    PeoplePtr * ptrPtr = &peoplePtr;
    printf("%d" , (*ptrPtr)->id );

}





c malloc,動態記憶體配置

malloc函式,要以需求的記憶體空間大小為參數,然後會回傳一個 void * (void 指

標:一種generic type),programmer要自己轉型為所要的指標型態.
在使用完之後

要用free函式釋放記憶體空間,避免 memory leak的發生.


i.e.