退货的类型不兼容

时间:2013-02-12 00:04:40

标签: c debugging pointers

很抱歉,如果这是一个过于简单的问题。我非常沮丧。

编译时,我收到以下错误:

sll.c:129: error: incompatible types in return

这是我文件顶部的结构定义,可能需要了解发生错误的函数:

struct string_linked_list {
   char *s;
   struct string_linked_list *next;
};

typedef struct string_linked_list SLL;

这是返回错误的函数。我编写了函数来简单地构造一个单例列表用于测试目的。

SLL makeSingleton()
{
    SLL * new= (SLL *) malloc( sizeof(SLL));
    char*sp = strdup("test");
    new->s = sp;
    new->next = NULL;
    return new;
}

你知道问题是什么吗?

3 个答案:

答案 0 :(得分:5)

您需要指定退货类型:

SLL* makeSingleton()
{

如果你没有指定它,在C中,函数将默认返回int。


编辑:

鉴于您的新修改,问题是您需要提交返回类型SLL*,而不是SLL

SLL* makeSingleton()

答案 1 :(得分:2)

在你的程序中,返回类型是一个指针,因此程序的占用空间应为SLL* makeSingleton

答案 2 :(得分:2)

该函数的隐式返回类型为int,而返回SLL * 还试图避免命名变量“new”