指针位置重置

10

我有一个指针指向一个数组,并且每次读取数据时该指针都会递增。每个数据长度都不同,因此我使用strlen来跳过指针。那么如何将指针重置回其起始地址呢?谢谢您的帮助。

2个回答

15

将原始值存储在另一个指针中,然后将存储的值再赋回去。

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

5
我认为最好的方法是简单地复制指针,每当您需要引用第一个元素时,只需使用新的副本即可。例如:
int *array = ..;
int *beginning = array;

如果您需要引用第一个元素,甚至将起始地址复制到原始指针中,则只需使用开始指针。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接