title: Undesirable Zero on the Output of Single Linked-list
body: <p>I am trying to do a simple linked-list in order to print the numbers inserted as arguments on the call of the program. However, it prints an undesirable zero on the final of the output. I guess it is a NULL that is printed, but I don't know how to get rid of it. I am still understanding the basics of linked-lists. Thank you.</p>
  
  <pre><code>/* */
  
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  
  
  
  
  
  /* */
  
  #define NUMERO_DE_ARGUMENTOS_MINIMO             3
  #define EOS                         '\0'
  
  
  
  
  
  /* */
  
  #define OK                          0
  #define ARGUMENTO_NULO                      1
  #define ARGUMENTO_VAZIO                     2
  #define PONTEIRO_NULO                       3
  #define NUMERO_DE_ARGUMENTOS_INVALIDO               101
  
  
  
  
  
  /* */
  
  typedef struct estruturaNumeros
  {
    unsigned numero;
    struct estruturaNumeros *proximaEstrutura;
  } tipoNumeros;
  
  
  
  
  
  /* */
  
  int
  main(int argc, char **argv)
  {
  
    /* */
  
    tipoNumeros *numeroInicial, *proximoNumero;
    char *validacao;
    unsigned indiceArgumento;
  
  
  
    /* */
  
    numeroInicial = (tipoNumeros *) malloc(sizeof(tipoNumeros));
  
  
  
    /* */
  
    if (argc &lt; NUMERO_DE_ARGUMENTOS_MINIMO)
    {
      printf("\n\n\nNumero de argumentos invalido.\n\n\n\n");
      exit(NUMERO_DE_ARGUMENTOS_INVALIDO);  /* Programa abortado. */
    } /* if */
  
  
  
    /* */
  
    if (!numeroInicial)
    {
      printf("\n\n\nPonteiro nulo.\n\n\n\n");
      exit(PONTEIRO_NULO);  /* Programa abortado. */
    } /* if */
  
  
  
    /* */
  
    proximoNumero = numeroInicial;
  
  
  
    /* */
  
    for (indiceArgumento = 1; indiceArgumento &lt; argc; indiceArgumento++)
    {
      proximoNumero-&gt;numero = strtoul(*(argv + indiceArgumento), &amp;validacao, 10);
      proximoNumero-&gt;proximaEstrutura = (tipoNumeros *) malloc(sizeof(tipoNumeros));
      proximoNumero = proximoNumero-&gt;proximaEstrutura;
    } /* for */
  
  
  
    /* */
  
    proximoNumero-&gt;proximaEstrutura = NULL;
    proximoNumero = numeroInicial;
  
  
  
    /* */
  
    printf("\n\n\n");
  
  
  
    /* */
  
    while (proximoNumero != NULL)
    {
      printf("%u\n", proximoNumero-&gt;numero);
      proximoNumero = proximoNumero-&gt;proximaEstrutura;
    } /* while */
  
  
  
    /* */
  
    printf("\n\n\n");
  
  
  
    return OK;  /* Codigo retornado com sucesso. */
  
  } /* main */
  
  
  
  
  /* output */
  
  UBUNTU 05 --&gt; ./exemplo_lista_encadeada_004 1 2 3
  
  
  
  1
  2
  3
  0
  </code></pre>