В моем приложении для отладки я хочу сохранить указатель перед выполнением других операций над ним, например,
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 ? */ }
Спасибо за любую помощь
Если под «сохранением указателя» вы имеете в виду сохранение места, на которое он указывает, это просто:
ptr2 = ptr1;
Если вы имеете в виду сохранение данных, ptr1 указывает на:1006 *
ptr1
mystruct *ptr; mystruct copy= *ptr; ptr=null;
Теперь копия имеет значение, на которое изначально указывал ptr
Вам так нравится:
void foo(MyStruct *struct) { MyStruct debugStruct = *struct; // do stuff to struct printf("Initial configuration: %s", debugStruct.stringField); }