сброс положения указателя - PullRequest
6 голосов
/ 03 июня 2011

У меня есть указатель, указывающий на массив, и увеличивается каждый раз, когда данные читаются. Каждые данные имеют разную длину, поэтому я использую strlen для перехода по указателю. Как мне сбросить указатель обратно на его начальный адрес ?! Спасибо за вашу помощь.

Ответы [ 2 ]

11 голосов
/ 03 июня 2011

Сохранить исходное значение в другом указателе, а затем присвоить это сохраненное значение обратно.

char* original;
char* current;
current = wherePointerShouldPointAtStart();
original = current;
while( someCondition() ) {
   usePointer( &current );
}
current = original;
3 голосов
/ 03 июня 2011

Я думаю, что вам лучше всего сделать копию указателя, а затем всякий раз, когда вам нужно сослаться на первый элемент, вы просто используете новую копию. Пример:

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

Если вам нужно сослаться на первый элемент или даже скопировать начальный адрес в исходный указатель, вы просто используете начальный указатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...