Subject
Nome da função: ft_lstadd_back
Protótipo: void ft_lstadd_back(t_list **lst, t_list *new);
Parâmetros:
- #1. Endereço do ponteiro para o primeiro link da lista.
- #2. Endereço do ponteiro para o elemento a ser adicionado na lista.
Valor de retorno: Nenhuma.
Funções externas: Nenhuma.
Descrição: Adiciona o elemento ‘new’ para o final da lista.
Rascunho
A função pede para acharmos o último elemento da lista. Dessa forma, devemos ir avançando até encontrar o último. Se fizéssemos um main assim:
int main() {
t_list *l = lstnew(strdup("Otaku"));
t_list *n = lstnew(strdup("Fedido"));
ft_lstadd_back(&l, n);
return 0;
}
O resultado seria:


Código
void ft_lstadd_back(t_list **lst, t_list *new)
{
t_list *last;
if (lst) //se o endereço não for 0
{
if (*lst == NULL) //se não é nulo
*lst = new; //adiciono o elemento 'new'
else
{
last = ft_lstlast(*(lst)); //encontro o último
if (last != NULL) //se ele não for nulo
last->next = new; //o próximo é 'new'
}
}
}