我通过Xcode运行此代码,我正在使用错误构建失败

时间:2015-11-24 21:33:05

标签: c++ xcode

  

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

#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;
}

1 个答案:

答案 0 :(得分:0)

你对standardDeviation的定义是寻找你正在调用数组的双精度型。你试图传递一系列双打。 c ++处理数组的方式是保存一个指向变量名的位置指针,当你给它一个输入(ex array [2])时,它会在内存中移动那么多的双倍空间。

所以编译器抱怨的是你告诉它一个双重来了,它有一个指向双精度的指针。

以下是pointersarrays的一些信息,这些信息应该有助于充实我上面所说的内容。

要解决此问题,您应该将原型更改为double standardDeviation(double array[]);,然后将其复制到您的函数定义中。 (如KevinDTrimm上面所述)