for( k = 0; k < CycleCount;k++)
{
//make Org data
int* Data = MakeData(DataCount[i]);
......
该功能看起来像这个。 我认为这是对的。所以......
int* MakeData(int DataCount)
{
//
int* Data=(int*)malloc(DataCount*sizeof(int));
int i;
for( i=0; i<DataCount; i++)
{
//
Data[i] = rand()%DataCount +1;
}
return Data;
}
我不知道为什么这不起作用。
我必须做什么?
答案 0 :(得分:5)
当C编译器在没有看到函数原型的情况下找到函数调用时,它会假定一个返回int的函数。
您应该使用&#34;函数原型&#34;:
告诉编译器正确的函数签名int* MakeData(int DataCount);
这应放在.h文件中,该文件将包含在调用或定义函数的所有编译单元中。
如果你有一个只在当前编译单元中可见的静态函数,你可以将原型(包括static
)放在该文件中的所有函数之前。
此外,你永远不应该从malloc
投出回报。它返回void*
。在语言C中,这可以转换为任何其他指针类型。在#include <stdlib.h>
时,您可以获得正确的原型。