2009-05-18 250 views
0

重複:指針的指針的指針

Uses for multiple levels of pointer dereferences

我有一個關於C和指針的問題。

我知道什麼時候需要一個指針,甚至當我需要一個指針指針時。 一個例子是如果我有一個鏈表,並且我想編寫一個函數來刪除該列表的一個元素,爲此我需要發送一個指向列表頭指針的指針。

如何指向指向指針的指針?會不會有這種情況需要?如果你有一些示例代碼,那麼額外的點數就可以讓我真正感受到它。

回答

0

極其罕見,但您可以想象某種引用計數場景,您需要獲取其他對象的指針地址並更改它。

0

從鏈接列表數組中的鏈接列表中刪除元素的函數或從鏈接數組數組中的鏈接列表中刪除元素的函數...您明白了我的觀點。

0

指針在某種意義上是數組。這是一個簡單的場景。假設你正在建立一個文本編輯器。線條和列都是動態的。

你可能有一個「數組」的行,並且由於它們是動態的,所以這將是一個指針。然後你的列也將是動態的,並可能包含在你的行數組中。因此,在本質:

char **lines; 

你將不得不之前添加字符第一的malloc您的線路,但這可能提供了一個編輯的一種非常原始的方法。

lines = malloc(num_of_lines_in_my_file); 
lines[0] = malloc(num_of_chars_for_line_1); 

當然不是漂亮的代碼,但希望它有助於回答這個問題。

2

向量是*,數組是**,數組是***,時間空間是****。