尝试使用指针
创建一个浮点数组int main(void)
{
int num_of_dataSets;
float **dataSets;
int i;
float *get_data;
printf("Enter the number of data sets: \n");
scanf( "%d " , &num_of_dataSets);
dataSets = malloc(num_of_dataSets * sizeof(float) );
for( i=0; i < num_of_dataSets; i++)
{
*(dataSets + i) = get_data();
}
}
float* get_data()
{
float *float_list_data;
int j;
int num_of_floats;
printf("Enter the data: \n");
scanf("%d" , &num_of_floats);
float_list_data = malloc( num_of_floats * sizeof(float) );
return float_list_data;
}
获取名为object“get_data”的错误不是一个函数。 我不能让错误消失。我错过了什么?!
答案 0 :(得分:1)
两件事:
除了名为get_data
的函数外,您的函数中还有一个名为get_data
的局部变量。重命名其中一个以避免这种命名混淆。
编辑:您似乎甚至没有在float* get_data;
中使用变量main()
。您可以将其删除。
如果您调用编译器无法找到或不知道的函数,它会假定它只是从其他地方链接到(例如,链接器知道的其他库),并返回int
。在代码中get_data()
下方定义get_data()
之前,请致电main()
。要避免此错误,请在get_data()
之前对函数main()
进行原型设计,如下所示:
float* get_data();
int main(void)
{
/* Your code here */
}
float* get_data()
{
/* Your code here */
}
答案 1 :(得分:1)
当编译器解析您的代码时,它会将get_data
名称作为函数名称两次获取,并将float *
作为get_data
。现在,当它到达一个函数调用时,它只是检查符号表然后就会混淆并说它找不到名为float*
的函数,因为它已经被声明为sys.partitions
。