警告语言C:赋值使得整数指针没有强制转换

时间:2014-04-20 11:18:54

标签: c gcc-warning

我试图在其他地方调用一个功能,但我做错了什么而且我不知道是什么。在我调用函数verifica_sub时,错误被激活了。

void subtracao(Lista * lista_1, Lista * lista_2)
{
    No_lista *aux1, *aux2, *aux_res_sub;
    int aux_sub = 0, empresta = 0;

    inicLista(&aux_res_sub);
    aux1 = *lista_1;
    aux2 = *lista_2;
    while (aux1 != NULL)
    {
        aux_sub = aux1->info - aux2->info;
        insereFim(&aux_res_sub, aux_sub);
        aux1 = aux1->prox;
        aux2 = aux2->prox;
    }
    aux_res_sub = verifica_sub(&aux_res_sub);
    exibe(&aux_res_sub);
}

void verifica_sub(Lista * aux_res_sub)
{
    No_lista *aux;

    aux = *aux_res_sub;
    while (aux != NULL)
    {
        if (aux->prox->info < 0)
        {
            aux->info = aux->info - 1;
            aux->prox->info = aux->prox->info + 10;
        }
        aux = aux->prox;
    }

2 个答案:

答案 0 :(得分:0)

您还没有提供足够的信息来回答您的问题。

但我确实注意到,在您所涉及的行上,您试图将void函数的结果赋给变量。为此,您需要修改verifica_sub以返回值。

答案 1 :(得分:0)

verifica_sub()未经原型化使用,因此编译器假定它返回int。由于它的结果应该分配给指针变量,编译器会发出你观察到的警告。

然而,由于verifica_sub()被定义为返回&#34;没有&#34;,即void,将其指定为某些内容并不合理,并且无法正常工作反正。