求教 指向指標的指標的問題,求教 指向指標的指標的一個問題。

2022-05-22 14:10:36 字數 714 閱讀 9627

1樓:匿名使用者

指標在計算機中是一個32位(即四位元組)的一個值,這32位資料代表一個地址,當你宣告瞭一個 char**p的指標的時候,自動分配了32位大小的空間儲存指標p,但是,注意,p沒有指向任何空間,所以*p操作是錯誤的,你必須先為*p分配一塊空間才行,具體做法如下:

p=(char**)malloc(sizeof(char*));

如上語句中分配了一個大小為char*(即32位大小)的空間,並把指向該空間的指標(其實就是該空間的地址)賦值給了p,然後當你進行的*p操作找到p所指向的空間,這時,*p = (char *)malloc(10);才沒有錯誤.

指標不難理解,指標其實就是一個32位大小的資料,和int一樣大,只不過代表地址而已,所以你也可以把地址賦值給一個int,然後在使用時通過強制型別轉換告訴編譯器這32位的資料其實是一個指標(地址),以後就可以像指標一樣使用了,指標使用時切記指標所指向的空間已經分配了,像你遇到的情況就是沒有分配儲存*p指標的空間造成的。

有什麼問題可以baidu hi我。

2樓:匿名使用者

main函式中定義了char **p,注意你這裡的*p沒有指向,是個懸垂著的指標。

把p傳遞給example函式,*p存放開闢空間的指標,但是*p指向哪兒呢?這裡就是錯誤。

改成這樣就可以了

把main函式中p定義為:char *p;

呼叫:example(&p);

指南針的紅色指標指向面,白色指標指向面

指南針的紅色指標指向 南 面,白色指標指向 北 面。地球是一個大磁體。地球的兩個極分別在接近地理南極和地理北極的地方。地球表面的磁體,當可以自由轉動時,就會因磁體同性相斥 異性相吸的性質指示南北。所以有指南針的紅色指標指向南面,白色指標指向北面。拓展資料 1 指南針,古代叫司南,主要組成部分是一根裝...

怎麼用指標的指標指向二維陣列的每個元素

通過二級指標去訪問二維陣列需要先給二級指標分配等同於二維陣列行數的一維陣列指標,然後把二維陣列的每行首地址賦值給對應位置的一維指標上。之後就可以通過二維指標直接訪問了。比如整型二維陣列,先定義int p 然後 根據行數,申請和行數相同的int 指標每個指標指向二維陣列對應行。這樣就可以通過每行的首地...

如何定義指向函式的指標陣列,如何定義一個指向函式的指標陣列

這個用typedef可以完成 先定義一個函式指標的型別 typedef void pfun 然後用這個型別pfun定義一個陣列 pfun ptr 5 裡的數字是陣列元素的個數,依情況而定 這兒用5做例子 這樣ptr就是一個指向函式指標的陣列。對於 把一個指標強制定義 這我還沒聽過這個說法,只聽過把指...