指针位置重置

时间:2011-06-03 06:32:16

标签: c pointers

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

2 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:3)

我认为你最好的选择就是简单地制作指针的副本,然后每当你需要引用第一个元素时,你只需要使用新的副本。例如:

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

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