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;
}
}
}
如果我尝试添加返回0,则不确定导致错误的原因;我明白了:
错误:返回&#39; int&#39;来自具有不兼容结果的函数 类型&#39; struct battleship&#39; 返回0;
答案 0 :(得分:0)
你必须返回一艘战舰结构。
如果您不需要返回任何内容,只需更改:
;with cte as (
select *, RowN = row_number() over (partition by batchid order by uid) from #yourbatch where subjectid in (0,1,2)
) select distinct BatchId from cte where RowN > 1
使用:
struct battleship
意味着该函数不返回任何内容。
考虑到你在这里分配了一些内存,你可能想要返回body的地址,这是一个指向int类型的指针。
在这种情况下,您的函数应该以:
void
答案 1 :(得分:0)
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;
}
}
struct battleship ship;
ship.body = body;
ship.size = size;
ship.pos = pos;
return ship;
}