title: differs in levels of indirection from 'int ()' (C)
body: <p>This code is giving me this error, which I don't understand. I can't even run the program. Can you help me to fix this error, please? If you don't understand anything in the code, say it.</p>
  
  <p><code>error C2040: 'CancelarPedido' : 'ppedido (ppedido)'</code> differs in levels of indirection from 'int ()'</p>
  
  <pre><code>printf("\nIntroduza opcao:");
      scanf("%d",&amp;opc);
  
      switch(opc){
          case 1: lista = NovoPedido(lista);break;
          case 2: lista = CancelarPedido(lista);break;
          case 3: printf("Falta implementar a funcao.");break;
          case 4: printf("Falta implementar a funcao.");break;
      }
      }while(opc!=5);
  
      return lista;
  }
  
  
  ppedido CancelarPedido(ppedido lista)
  {
      ppedido actual, anterior = NULL;
  
      char id[5];
  
      actual = lista;
  
      if(lista == NULL)
          printf("\nNao ha pedidos na fila de espera...");
      else
      {
          printf("\nIntroduza o ID do pedido que pretende cancelar: ");
          scanf("%s", id);
  
          while(actual != NULL &amp;&amp; ((strcmp(actual-&gt;id, id)) != 0)){
              anterior = actual;
              actual = actual-&gt;prox;
          }
          if(actual == NULL){
              printf("\nERRO - Nao existe nenhum pedido com o ID introduzido.");
              return lista;
          }
          if(anterior == NULL){
              lista = actual-&gt;prox;
              printf("\nPedido cancelado com sucesso...");
          }
          else{
              anterior-&gt;prox = actual-&gt;prox;
              printf("\nPedido cancelado com sucesso...");
          }
          free(actual);
          return lista;
      }
  }
  </code></pre>