Как сохранить указатель в C - PullRequest
0 голосов
/ 07 мая 2010

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

void foo(...)
{
    /* suppose ptr1 points to one of my structs */
    ptr1 = NULL;
    /* before that ptr1=NULL I want to save value of that pointer - how to do it ? */

}

Спасибо за любую помощь

Ответы [ 3 ]

3 голосов
/ 07 мая 2010

Если под «сохранением указателя» вы имеете в виду сохранение места, на которое он указывает, это просто:

ptr2 = ptr1;

Если вы имеете в виду сохранение данных, ptr1 указывает на:1006 *

1 голос
/ 07 мая 2010
mystruct  *ptr;
mystruct copy= *ptr;
ptr=null;

Теперь копия имеет значение, на которое изначально указывал ptr

0 голосов
/ 07 мая 2010

Вам так нравится:

void foo(MyStruct *struct) {
  MyStruct debugStruct = *struct;

  // do stuff to struct

  printf("Initial configuration: %s", debugStruct.stringField);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...