-2
爲什麼我在這段代碼中得到分段錯誤:11?我的Mac有沒有內存不足?還是有其他原因?我有MacBook Air RAM 8GB。分割錯誤:11在c + +
template<class T>
class vecto
{
T *v;
int size;
public:
vecto(int m)
{
size=m;
v=new T[m];
for(int i=0; i<size; i++)
v[i]=0;
cout<<"inside constructor 1."<<endl;
}
vecto(T *a)
{
for(int i=0; i<size; i++)
v[i]=a[i];
cout<<"inside constructor 2."<<endl;
}
};
int main()
{
int a1[3] = {1,2,3};
float a2[3] = {4,5,6};
vecto<int> v1(3); //constructor 1 called
vecto<float> v2(3); //constructor 1 called
v1=a1; //constructor 2 called
v2=a2; //constructor 2 called
return 0;
}
***我的Mac有沒有內存不足?***不太可能。 – drescherjm
使用調試器檢查線段發生分段故障。 – nwp
你應該看看使用調試器,它會告訴你觸發它的代碼行,並讓你檢查你的程序狀態(例如看指針或索引是否有意想不到的值) –