2011-06-03 98 views
6

我有一个指向数组的指针,并且每次读取数据时都会递增。每个数据的长度都不相同,所以我使用strlen来跳转指针。如何将指针重新设置回其起始地址?感谢您的帮助。指针位置重置

回答

11

将原始值存储在另一个指针中,然后将该存储值分配回去。

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

我认为最好的方法是简单地使指针的副本,那么当你需要引用你只需要使用新副本的第一个元素。例如:

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

如果您需要引用的第一要素,甚至是起始地址复制到原来的指针,你只需要使用开始指针。