Установка указателя, на который указывают другие объекты, на ноль - PullRequest
0 голосов
/ 01 марта 2019

У меня есть функция, которая принимает структуру (указатель).В этой функции я перебираю до конца очередь структур, которая является глобальной, и добавляю новую структуру в конец очереди.После того, как я завершу эту операцию, для целей проверки ошибок мне нужно установить передаваемую структуру (указатель) равной нулю, не затрагивая глобальную очередь.Однако, когда я устанавливаю переданную структуру равной NULL, это вызывает ошибку по очереди для очереди.

Редактировать: я не могу опубликовать полный код, так как он чувствителен к классу, однако я могу опубликоватьпример.

Пример:

//There is code above this parsing the passedInJob in various ways, adding it to the queue if the final step
//This block of code just adds to queue, after this all references to the newly added job cause a segfault
//get the current head of the queue and put it in currJob
struct job * currJob = queue->head;

//Move to the end of the queue
while(currJob->nextJob != NULL)
   //move to the next job, when we hit NULL we're at the end
   currJob = currJob->nextJob

//Set the end of the queue to be the passed in job
currJob->next_job = passedInJob;

//We set passedInJob = NULL because at the end we check if the job still exists to signify there was an error adding the job
//This is causing the error, I believe setting this to NULL is setting the struct in the queue to NULL
passedInJob = NULL;

//Since there is code parsing above, we use this to ensure the job was added
if(passedInJob)
  //handle error

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