2011-06-03 13 views
6

Tengo un puntero apuntando a una matriz y se incrementa cada vez que se leen los datos. Cada dato es de diferente longitud y por eso utilizo strlen para saltar el puntero. ¿Cómo restablezco el puntero a su dirección inicial? Gracias por tu ayuda.reinicio de la posición del puntero

Respuesta

11

Almacene el valor original en otro puntero y luego vuelva a asignar ese valor almacenado.

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

creo que la mejor opción sería la de simplemente hacer una copia del puntero, a continuación, siempre que lo necesite para hacer referencia al primer elemento que acaba de utilizar la nueva copia. Ejemplo:

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

Si necesita hacer referencia al primer elemento, o incluso copiar la dirección de partida para el puntero original, sólo tiene que utilizar el puntero de inicio.

Cuestiones relacionadas