创建一个模板函数,在不同的数据类型中添加元素和数组

时间:2014-05-11 19:53:19

标签: c++ arrays

我正在尝试在C ++中创建一个模板函数,它返回不同数据类型数组的元素之和。当我试图得到我的结果时,我遇到了问题。我在内存中打印出一个地址(我猜)。这是我上一次用C ++做的功课,所以请在这里帮忙;-) 这就是我到目前为止所做的:

template <class T>
int sum(T array, int size)
{
  int i;
  int result;
  for(i = 0; i < size; ++i)
{
    result += array[i];

} 

  return result; 
}

和我的main()看起来像

int main()
    {
    cout << "Printing Array sum..." << endl;
    len = sizeof(intArr) / sizeof(int);
    //len = sizeof(strArr) / sizeof(int);

    cout << sum(intArr, len)<<endl;
    //cout << sum(strArr, len)<<;



    return 0;
    }

命令行中的输出是一个随机数 请提示或帮助解决这个问题

1 个答案:

答案 0 :(得分:1)

您没有在result中初始化sum,因此它包含堆栈垃圾。然后你将array中的所有内容添加到堆栈垃圾中,这会给你带来垃圾。