c - 警告 : control reaches end of non-void function [-Wreturn-type] }

标签 c

C语言编程

代码:

struct battleship makeShip (int size, int pos)
{
    int i, j;
    int* body;
    body = (int*) malloc (size * sizeof(int));
    for (i = pos; i < (pos + size); i++){
        for (j=0; j < size; j++){
            body[j] = 1;
        }
    }
}

如果我尝试添加 return 0,则不确定是什么导致了错误;我得到:

错误:从结果不兼容的函数返回“int” 输入“结构战舰” 返回0;

最佳答案

你必须归还战舰结构。

如果您不需要返回任何内容,只需更改:

struct battleship

与:

void

意味着该函数不返回任何内容。

考虑到您在这里为某些东西分配了一些内存,您可能想返回 body 的地址,它是一个指向 int 类型的指针。
在这种情况下,您的函数应以以下内容开头:

int * makeShip(int size, int pos)

关于c - 警告 : control reaches end of non-void function [-Wreturn-type] },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212114/

相关文章:

c - C 函数 crypt() 是否存在已知问题?

c - 通过套接字传递链表

c - SO_RCVTIMEO 会影响 accept() 吗?

将结构复制到C中的数组

c - LibUSB 驱动程序问题 : timeout

c - MPI 获取具有最小值的处理器

c - 使用 sscanf 验证十六进制格式的命令字符串

c - 如何为 jvm.dll 设置系统范围的环境变量

c - fflush、fsync 和 sync 与内存层

c - 在make mupdf期间, fatal error : X11/Xlib. h文件在mac中找不到