0
我有一個char*
。我想分析它,逐個字符地將它們的位置存儲在int*
中。如何將一個字符映射到另一種類型的指針?
隨着虛擬串「abbcdc」,內容應該如下
char int*
-------------
'a' -> 0
'b' -> 1,2
'c' -> 3,5
'd' -> 4
我想這是訪問過含有char*
整個字母,使字母,指針指向每一個字符到每個單獨的整數指針。這是我迷失的地方。
我知道我可以使用雙星號語法
int **a = &aLocations;
指向一個指針,但我真的不知道如何利用文字作爲參考來指代的位置指針。我對C來說很新,所以所有的指針(雙關語)都會被讚賞。
更新1:
int *aLocations = malloc(3*sizeof(int));
aLocations[0] = 13;
aLocations[1] = 9;
aLocations[2] = 57;
int **a = &aLocations;
這似乎像預期的那樣工作,但顯然a
仍然是一個整數,而不是一個字符。我正在考慮寫一個功能,沿線
int *getCharLocations(char c) {
// returns a pointer to the stored character locations
}
但我不知道如何繼續執行它。
請注意,一個'int *'指向一個'int'。 '1,2'是兩個整數。你可以安排'int'指向'1',但是你怎麼知道還有多少個數字跟在1之後呢? – MSalters 2014-10-29 12:43:19
每個相應大小的動態重新分配和存儲確實是我必須考慮的事情,但現在我滿足於瞭解如何將字符映射到整數指針! – krystah 2014-10-29 12:46:41
所以你想擁有包含字母表(a-z)的數組,你可以從這個數組中得到特定字符的索引數組? – 4rlekin 2014-10-29 12:57:25