C++;使用模板时的分段错误11 我刚刚开始使用C++模板,其中我创建了模板平方函数、模板MyVo向量类,并重写MyVo向量类的乘法运算符。

C++;使用模板时的分段错误11 我刚刚开始使用C++模板,其中我创建了模板平方函数、模板MyVo向量类,并重写MyVo向量类的乘法运算符。,c++,segmentation-fault,C++,Segmentation Fault,在我对MyVector对象进行平方处理的部分,我面临一个问题,即square(bv),它在分割错误11中失败。 欢迎任何帮助或指点 我在Mac OS上,用g++编译 配置为:--prefix=/Library/Developer/CommandLineTools/usr--gxx include dir=/usr/include/c++/4.2.1 苹果LLVM版本9.1.0(clang-902.0.39.2) 目标:x86_64-apple-darwin17.7.0 线程模型:posix #包

在我对MyVector对象进行平方处理的部分,我面临一个问题,即square(bv),它在分割错误11中失败。 欢迎任何帮助或指点

我在Mac OS上,用g++编译

配置为:--prefix=/Library/Developer/CommandLineTools/usr--gxx include dir=/usr/include/c++/4.2.1 苹果LLVM版本9.1.0(clang-902.0.39.2) 目标:x86_64-apple-darwin17.7.0 线程模型:posix

#包括
使用名称空间std;
样板
T平方(T x){
返回x*x;
}
//模板有代码膨胀的副作用,
//i、 e.两种数据类型的代码段都不同
//模板类
样板
类MyVector{
T arr[100];
整数大小;
公众:
MyVector():大小(0){}
无效推送(tx){arr[size]=x;size++;}
T get(int i)const{return arr[i];}
int getSize()常量{return size;}

void print()const{for(int i=0;i函数模板
MyVector操作符*(const MyVector&rhs1,MyVector&rhs2)
内的循环不变量不正确。更改

for(int i=0; rhs1.getSize();i++)

for(int i=0;i
请创建一个来向我们展示。请。它在哪一行上运行?您是否尝试过使用调试器来帮助您找到它正在运行的条件?这不是SEGFULT的原因,但您的平方函数按它可能不应该的值取参数(您不必要地复制了参数)是的,它在square(bv)部分有分段错误,是的,我试过调试它,但我仍然习惯于xcode,来自visual studio。
for(int i=0;rhs1.getSize();i++)
你认为这是在做什么?谢谢,对不起,我让问题的复杂性压倒了我。这是我犯的一个非常基本的愚蠢错误。@vhora非常抱歉,发现小错误不太可能让你感到聪明;)一直都在发生。
for(int i=0; rhs1.getSize();i++)
for(int i=0; i < rhs1.getSize();i++)
             ^^^^