我的指针返回功能有问题。错误,"调用对象类型' int *'不是函数或函数指针" reverseArray = reverseArray(array,size);
。我不确定为什么它会给我这个错误,这不是我的解决方案我使用此解决方案作为帮助我解决问题的指导。由于我现在坐了两个小时试图解决它而我没有在哪里,所以我决定查阅它,并了解如何解决问题。并通过使用调试器来分解他们的解决方案,看看他们的解决方案为什么有效。我知道这样做是件坏事,因为我不学习如何自己解决问题。
#include <iostream>
int* reverseArray(int [], int );
int main()
{ const int size =5;
int array[size] = {1,2,3,4,5};
int* reverseArray;
for(int i =0; i < size;i++)
{
std::cout << array[i];
}
reverseArray = reverseArray(array,size);
for(int i =0; i <size;i++)
{
std::cout <<array[i];
}
return 0;
}
int* reverseArray(int array [],int size)
{
int* newArray;
newArray = new int[size];
int j = 0;
for(int k =size-1;k>=0;k--)
{
newArray[j] = array[k];
j++;
}
return newArray;
}
答案 0 :(得分:1)
&#34;调用对象类型&#39; int *&#39;不是函数或函数指针&#34; 。在您的main()
函数中,您将要作为参数传递的数组命名为reverseArray()
函数,其名称与函数相同(reverseArray)。编译器在该范围内感到困惑,因此并认为您将变量称为函数。
见下文:
#include <iostream>
int* reverseArray(int [], int );
int main()
{ const int size =5;
int array[size] = {1,2,3,4,5};
int* reverseArray; // Change this name to something else
for(int i =0; i < size;i++)
{
std::cout << array[i];
}
reverseArray = reverseArray(array,size);
for(int i =0; i <size;i++)
{
std::cout <<array[i];
}
return 0;
}
希望有所帮助:)