2011-06-03 88 views
6

我有一個指向數組的指針,並且每次讀取數據時都會遞增。每個數據的長度都不相同,所以我使用strlen來跳轉指針。如何將指針重新設置回其起始地址?感謝您的幫助。指針位置重置

回答

11

將原始值存儲在另一個指針中,然後將該存儲值分配回去。

char* original; 
char* current; 
current = wherePointerShouldPointAtStart(); 
original = current; 
while(someCondition()) { 
    usePointer(&current); 
} 
current = original; 
3

我認爲最好的方法是簡單地使指針的副本,那麼當你需要引用你只需要使用新副本的第一個元素。例如:

int *array = ..; 
int *beginning = array; 

如果您需要引用的第一要素,甚至是起始地址複製到原來的指針,你只需要使用開始指針。