指针位置重置

kir*_*ran 6 c pointers

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

sha*_*oth 12

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

char* original;
char* current;
current = wherePointerShouldPointAtStart();
original = current;
while( someCondition() ) {
   usePointer( &current );
}
current = original;
Run Code Online (Sandbox Code Playgroud)


Mik*_* N. 5

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

int *array = ..;
int *beginning = array;
Run Code Online (Sandbox Code Playgroud)

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