指針指向數組並指定數組首地址的一種方法

今天因爲雙核通信,需要共享一塊內存,想到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類型的數組。


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