У меня есть функция, которая принимает структуру (указатель).В этой функции я перебираю до конца очередь структур, которая является глобальной, и добавляю новую структуру в конец очереди.После того, как я завершу эту операцию, для целей проверки ошибок мне нужно установить передаваемую структуру (указатель) равной нулю, не затрагивая глобальную очередь.Однако, когда я устанавливаю переданную структуру равной 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