c - 不兼容的返回类型

标签 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;
}

你知道问题出在哪里吗?

最佳答案

你需要指定你的返回类型:

SLL* makeSingleton()
{

如果不指定,在 C 中,该函数将默认返回 int。


编辑:

鉴于您的新编辑,问题是您需要使返回类型为 SLL*,而不是 SLL:

SLL* makeSingleton()

关于c - 不兼容的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823283/

相关文章:

c - 为什么我在这里遇到内存访问冲突?

c - 实现循环队列的细微错误

asp.net - Visual Studio 调试器仍然显示从 iframe 中删除的旧页面

debugging - 从堆栈上有 WerReportFault() 的小型转储中获取信息

c++ - 如何找到在 C++ 中引发异常的位置?

c++ - 交换指针数组(指向类的指针)元素

c++ - 对于 C/C++ 中的数组分配,这些额外的代码是否需要没有错误?

c - 格式化打印指针值

c - 使用 SSE2 指令集查找 3 个值的中位数

c - 使用 glib 数据类型时,Valgrind 报告内存 'possibly lost'