C++ C++;候选函数不可行:没有从';int';至';int*';第一个论点;用&;

C++ C++;候选函数不可行:没有从';int';至';int*';第一个论点;用&;,c++,arrays,pointers,error-handling,compiler-errors,C++,Arrays,Pointers,Error Handling,Compiler Errors,好吧,我真的不知道这个错误是什么意思。*是指针,对吗?我没有使用指针,所以我不明白发生了什么?这是我的第二节编程课,所以我还是个新手。任何帮助都将不胜感激 MAIN.CPP #包括 #包括“arr.hpp” int main() { int size=getInteger(); 整数数组; fillArray(数组,大小); sortArray(数组,大小);//所有这些函数都会出现错误。 显示阵列(阵列、大小); b搜索(数组、大小、值); 返回0; } ARR.CPP #包括“arr.hp

好吧,我真的不知道这个错误是什么意思。*是指针,对吗?我没有使用指针,所以我不明白发生了什么?这是我的第二节编程课,所以我还是个新手。任何帮助都将不胜感激

MAIN.CPP

#包括
#包括“arr.hpp”
int main()
{
int size=getInteger();
整数数组;
fillArray(数组,大小);
sortArray(数组,大小);//所有这些函数都会出现错误。
显示阵列(阵列、大小);
b搜索(数组、大小、值);
返回0;
}
ARR.CPP

#包括“arr.hpp”
#包括
int getInteger()
{
int值;
标准::cout>值;
//检查大小是否在范围内
如果(值>=10&&value
  • 您将
    array
    声明为整数,而不是数组。我假定您希望声明一个大小为
    size
    的数组并将其传递给函数
  • 您缺少
    值的声明
  • 要修复它,请替换
    数组的声明
    并声明

    int size = getInteger();
    int array[size];
    int value;
    ...
    
    编辑: 正如评论中提到的,上面的建议在标准C++中是不合法的。对于你的程序,用合法的C++编译,你可能有几个选择:

  • 在编译时使
    size
    已知,例如100,并要求用户输入一个介于0和100之间的数字
  • 使用数据结构,如
    std::vector
    ,并相应地修改所有函数定义

  • 你的函数期望你传递一个数组。你传递的是一个int。数组在传递给函数时会衰减为指针,这就是错误显示的。另外,发布的代码几乎不可读。我建议编辑帖子,使其可读。在这个网站上,让他们的问题可读的责任在海报上,tOnSU不是别人通过一个不可读的帖子来写的。<代码>我不使用指针< /Cord>。我知道这很奇怪,但是你不能在C++中有一个数组作为函数参数。在这个代码<代码>空格fIrLoad(int数组[],int size); <代码>数组< /C>实际上是一个指针。<代码> int数组[大小]在C++中,可变大小数组是不合法的。它在哪里工作,它是编译器扩展。你是对的,我用ISO C++ 11编译器加上GNU扩展程序。如果手工编译,使用标志-STD= GNU+11。如果使用GCC或支持类似扩展的其他编译器,则可以工作。但是它是编译器特有的,并且应该注意。OP的问题不是关于任何特定的编译器。