Cliente insert_last_adq(int option,Viagem global,Cliente adq,Cliente esp,int data,char *destino,int cod_destino,int id,char *nome){
/*FIX: Caso quando full*/
Cliente new_node = (Cliente) malloc( sizeof(Clientes_node) );
Cliente adq_orig = adq;
Cliente esp_orig = esp;
new_node->data=data;
new_node->cod_destino=cod_destino;
new_node->id=id;
strcpy(new_node->destino,destino);
strcpy(new_node->nome,nome);
switch( option ){
    case 0:
        if(adq==NULL){
            new_node->next=NULL;
            if(option==0){
                diminuir_disp(global,data,cod_destino);
            }
            return new_node;
        } else if( get_viagens_disp_destino(global,data,cod_destino) > 0 ){
            while(adq->next!=NULL){
                adq=adq->next;
            }
            adq->next=new_node;
            new_node->next=NULL;
            diminuir_disp(global,data,cod_destino);
            return adq_orig;
        } else if( get_viagens_disp_destino(global,data,cod_destino)==0 ){
            /*FIX: Not workin*/
            if(esp==NULL){
                new_node->next=NULL;
                esp=new_node;
            }else{
                while(esp->next!=NULL){
                    esp=esp->next;
                }
                esp->next=new_node;
                new_node->next=NULL;
                return adq_orig;
            }
        }
        break;
    case 1:
        if(esp==NULL){
                new_node->next=NULL;
                return new_node;
            }else{
                while(esp->next!=NULL){
                    esp=esp->next;
                }
                esp->next=new_node;
                new_node->next=NULL;
                return esp_orig;
            }
        break;
}

}

评论FIX:不工作后,我有一句话:

esp=new_node;

所以我的目标是给链表的起始地址esp指定new_node的地址。 我知道如果我返回一个地址,我可以改变这个,但问题是adq链表是收到返回值的那个。

顺便说一下,esp是一个指向结构,以及adq,因此不需要“*”。 adq和esp属于同一类型“Cliente”

===============>>#1 票数:0

我只是在参数中添加了一个整数。 我将其设置为0或1,具体取决于我要将返回值设置为的列表。 然后我刚刚使用的函数:

if(out_int==0){
    adq=return_pCliente;
}else if(out_int==1){
    esp=return_pCliente;
}

out_int在函数的参数中作为int * out_int传递,因此可以在函数内部进行更改。 其余代码不需要进行任何更改。 我在时钟上,所以tmy解决方案工作正常。 但感谢您的帮助,学到了一两件新事物。

  ask by Goamaral translate from so

未解决问题?本站智能推荐: