我有一个结构间隔和*re[]
作为指向结构的指针数组。在函数insert()
中,我能够将所需的数据存储在指针数组中,但是当我将指针数组返回为return re
时,将显示一条警告,“从不兼容类型返回”。返回指针阵列
typedef struct interval
{
int start;
int end;
}interval;
interval *re[100000];
interval * insert(interval *intervals,interval newInterval,int sz, int *len)
{
int size_i=0;
for(size_i=0;size_i<=sz+1;size_i++)
{
re[size_i]=(interval *)malloc(sizeof(intervals[0]));
}
re[0]->start=intervals[0].start;
re[0]->end=intervals[0].end;
re[1]->start=intervals[1].start;
re[1]->end=intervals[1].end;
printf("%d,%d",re[0]->start,re[0]->end);
printf("\t%d,%d",re[1]->start,re[1]->end);
return re; //Statement where i am getting warning
}
int main(void)
{
interval intervals[100]={{5,6},{8,10},{11,16},{20,24}};
interval newInterval={};
interval * ret;
int sz=4,i;
int *len;
ret=insert(intervals,newInterval,sz,len);
printf("\n%d,%d",ret[0].start,ret[0].end);
printf("\n%d,%d",ret[1].start,ret[1].end);
}
在main()
欲接收在另一个指针的指针数组,这样我可以指针结构的返回阵列上进行迭代。 但我在这里得到一些地址。
请在报告编译器的某些错误/警告输出时,尽量将其与屏幕上显示的内容完全一致。您对邮件的解释可能是错误的,因此您可以从实际邮件中更改完整的错误信息。 –