警告语言C:赋值使指针从整数变为不带强制转换



我试图在另一个函数中调用一个函数,但我做错了什么,我不知道是什么。这个错误是在我调用函数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;
    }

您没有包含足够的信息来给出一个好的问题答案。

然而,我确实注意到,在有问题的行中,您正试图将void函数的结果分配给变量。为此,您需要修改verifica_b以返回一个值。

verifica_sub()在没有原型化的情况下使用,因此编译器假设它返回int。由于它的结果应该被分配给一个指针变量,编译器会发出您观察到的警告。

然而,由于verifica_sub()被定义为返回"nothing",即void,因此将其分配给某个东西是没有意义的,而且无论如何都不会起作用。

最新更新