int initfunc(int *array, int len)
{
int i;
for(i=1; i <= len; i++)
{
array[i] = i;
}
return 0;
}
int main(int argc, char* argv[])
{
int *myarray = 0;
initfunc(myarray, 10);
}
答案 0 :(得分:-3)
正确的代码拳头:
int initfunc(int *array, int len)
{
int i;
for(i = 1; i <= len; i++)
{
array[i] = i;
*array++; // this is needed to point to the next position in the array
}
return 0;
}
int main(int argc, char* argv[])
{
int myarray[10];
/*
this is an array, int *array is a pointer to int
but not an actual array
*/
initfunc(myarray,10);
return 0;
}
你的代码的问题是你传递一个指向什么的指针, (NUL指针)用语句声明:int * array = 0
将其传递给存储十个值的函数 这是灾难的秘诀,因为它指向存储 那是没有先分配的。
我希望这会有所帮助。