что-то не так с опубликованным кодом, которые, безусловно, не помогают
if(pFind == NULL)
{
return allocateNode(user); <<< == nothing will be executed after this line
if (strcmp(pPrecedes->user.szUserId, pFind)!= 0) //pFind seems wrong
pNew->pNext = pPrecedes->pNext;
else
pNew->pNext = pPrecedes->pNext;
pPrecedes->pNext = pNew; <<<<< == should this line be dependant on the else above. The indentation says yes but there are no braces
}
и да, я знаю, я пойду на голосование, потому что это «не ответ» - что угодно, я приму удар, просто чтобы посмотреть, смогу ли я помочь