首页 > 解决方案 > C - 警告:指针和整数之间的比较('struct V_LISTE *' 和 'int')

问题描述

对于简单的链式(动态)列表,我想编写一个函数来删除包含字符“k”的第一个元素。

我写了以下函数:

char popIfK(struct V_LISTE **kopf)
{
    char *returnVal;
    struct V_LISTE *kElement;
    kElement = *kopf;
    while (kElement->nachfolger != 'k')
    {
        kElement = kElement->nachfolger;
    }
    returnVal = &(*kopf)->vorname;
    free(*kopf);
    *kopf = kElement;
    return *returnVal;
}

在 while 语句中,我收到警告:指针和整数之间的比较 ('struct V_LISTE *' 和 'int') while (kElement->nachfolger != 'k')

我已插入具有以下功能的元素:

struct V_LISTE *insert(struct V_LISTE *list, char key)
{
    struct V_LISTE *newElement;
    newElement = (struct V_LISTE *) malloc(sizeof(struct V_LISTE));
    newElement->vorname = key;
    newElement->nachfolger = list;
    list = newElement;
    return list;
}

通过在 main 中调用它:

struct V_LISTE
{
    char vorname;
    struct V_LISTE *nachfolger;
};

int main()
{
    struct V_LISTE *kopf;
    kopf = (struct V_LISTE *) malloc(sizeof(struct V_LISTE));

    kopf->vorname = 'o';
    kopf->nachfolger = NULL;    kopf = insert(kopf, 'l');
    kopf = insert(kopf, 'k');
    kopf = insert(kopf, 'T');

    char name;
    name = popIfK(&kopf);
    printf("%c\n", name);
}

我运行我的程序出现分段错误:11 我无法解决问题,需要一些帮助。

标签: clinked-listdynamic-list

解决方案


推荐阅读