C++ 我正在通过Xcode运行这段代码,生成失败并出现错误

C++ 我正在通过Xcode运行这段代码,生成失败并出现错误,c++,xcode,C++,Xcode,架构x86_64的未定义符号: “标准偏差(双*)”,引用自:_mainin main.o ld:找不到架构x86_64的符号clang:错误:链接器 命令失败,退出代码为1(使用-v查看调用) #包括 使用名称空间std; 双标准差(双[]); int main(){ 双数组[]={2,11,4,5,9,5,4,12,7,8,9,3,7,4,12,10,9,6,9,4}; 标准差(数组); 返回0; } 双标准差(双阵列){ 你定义的标准偏差是寻找一个双数组,你正在调用数组。你试图通过一个双倍

架构x86_64的未定义符号:
“标准偏差(双*)”,引用自:_mainin main.o ld:找不到架构x86_64的符号clang:错误:链接器 命令失败,退出代码为1(使用-v查看调用)

#包括
使用名称空间std;
双标准差(双[]);
int main(){
双数组[]={2,11,4,5,9,5,4,12,7,8,9,3,7,4,12,10,9,6,9,4};
标准差(数组);
返回0;
}
双标准差(双阵列){

你定义的标准偏差是寻找一个双数组,你正在调用数组。你试图通过一个双倍数组。C++处理数组的方式是保存一个指向变量名的位置指针,当你给它一个输入(Ex数组(2))时,它会移动内存中的双倍的空间。 所以编译器抱怨的是,你告诉它一个double即将到来,它得到了一个指向double的指针

这里有一些信息,应该有助于充实我上面所说的内容


要解决这个问题,您应该将原型更改为
双标准偏差(双数组[]);
,然后将其复制到函数定义中。(如上KevinDTrimm所述)

您的原型是
[]
,您的实现不是。可能是No的重复,链接器抱怨没有方法匹配他的调用。这根本不是指针问题(除了方法定义中指针和标量不相等的事实)@KevinDTimm问题是原型和函数定义不匹配(原型指定了数组,定义说它是一个double)。我扩展了我的答案,解释了如何解决这个问题。
#include <iostream>
using namespace std;

double standardDeviation(double []);

int main(){
    double array[] =  {2, 11, 4, 5, 9, 5, 4, 12, 7, 8, 9, 3, 7, 4, 12, 10,9, 6, 9, 4};
    standardDeviation(array);
    return 0;
}

double standardDeviation(double arrary){
    cout << arrary;
    return 0.0;
}