gpt4 book ai didi

c++ - 运行时错误问题

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:31 25 4
gpt4 key购买 nike

这里有一些代码给我一个我似乎无法修复的运行时错误。 Length() 函数计算点数组中所有点之间的累积距离。它使用了一个我知道可以完美运行的先前定义的函数 Distance()。有什么指点吗?

这是我的函数源代码:

template<typename Point>                //Length function
double PointArray<Point>::Length() const
{
double total_length = 0;
for (int i=0; i<Size(); i++)
{
total_length += (GetElement(i)).Distance(GetElement(i+1));
}
return total_length;
}

这是我的实现:

cout<<"The Length of the Point Array is: "<<(*ptArray1).Length()<<endl;

非常感谢!

最佳答案

您正在读取超出数组末尾的元素。

for (int i=0; i<Size(); i++)
{
total_length += (GetElement(i)).Distance(GetElement(i+1));
//^^^
}

当您到达 for 循环的末尾时,您会读取最后一个元素,然后计算与下一个元素的距离——该元素位于数组边界之外。您的 for 循环应如下所示:

for (int i=0; i<Size() - 1; i++)
{
total_length += (GetElement(i)).Distance(GetElement(i+1));
}

关于c++ - 运行时错误问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com