我正在尝试在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;
}
命令行中的输出是一个随机数 请提示或帮助解决这个问题
答案 0 :(得分:1)
您没有在result
中初始化sum
,因此它包含堆栈垃圾。然后你将array
中的所有内容添加到堆栈垃圾中,这会给你带来垃圾。