Passando o ponteiro struct para funcionar em c

Estou tendo um problema com a passagem de um ponteiro para uma estrutura para uma função. Meu código é essencialmente o que é mostrado abaixo. Depois de chamar o modify_item na função principal, stuff == NULL. Eu quero coisas para ser um ponteiro para um item struct com elemento igual a 5. O que estou fazendo errado?

<code>void modify_item(struct item *s){
   struct item *retVal = malloc(sizeof(struct item));
   retVal->element = 5;
   s = retVal;
}

int main(){
   struct item *stuff = NULL;
   modify_item(stuff); //After this call, stuff == NULL, why?
}
</code>

questionAnswers(2)

yourAnswerToTheQuestion