1. 程式人生 > >指標指向陣列並指定陣列首地址的一種方法

指標指向陣列並指定陣列首地址的一種方法

今天因為雙核通訊,需要共享一塊記憶體,想到C語言可以為一個引數指定地址,那麼如何為一個數組指定首地址呢?

借鑑引數指定地址的方法,先想到用一個指標來指向一個數組,同時定義陣列的資料型別,我是這樣定義的

short (*ptr)[1024;

這樣就定義了一個指標,該指標指向陣列型別為short型別,切長度為1024,但是這個指標或者說是陣列並沒有初始化的地址,

於是需要給它初始化一下,也就是指定陣列的起始地址,我是這樣做的

ptr = (short(*)[1024])0xc0001200;

這裡(short(*)[1024])0xc0001200將數字0xc0001200強制轉換成(short(*)[1024])的型別的地址,可以理解成一個無名的指標(*)指向一個型別為short,

長度為1024的陣列的首地址,該首地址為0xc0001200,並將這個地址賦值給ptr;

下面我通過C編譯器進行了驗證。


開始時ptr指標的狀態是上面這樣的,指向地址為0x00000000,指標所在地址為0xc14fcf64

經過ptr = (short(*)[1024])0xc0001200;這一步後,變成如下形式


指標地址已經指向0xc0001200,並且指向一個長度為1024的short型別的陣列。