2011-06-03 2 views
6

J'ai un pointeur pointé sur un tableau et est incrémenté chaque fois qu'une donnée est lue. Chaque donnée est de longueur différente et j'utilise donc strlen pour sauter le pointeur. Comment réinitialiser le pointeur à son adresse de départ ?! Merci de votre aide.réinitialisation de la position du pointeur

Répondre

11

Stockez la valeur d'origine dans un autre pointeur, puis affectez cette valeur enregistrée.

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

Je pense que votre meilleur pari serait de simplement faire une copie du pointeur, puis à chaque fois que vous devez référencer le premier élément que vous venez d'utiliser la nouvelle copie. Exemple:

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

Si vous devez référencer le premier élément, ou même copier l'adresse de départ pour le pointeur d'origine, il vous suffit d'utiliser le pointeur de début.

Questions connexes