Class vector
{
int *v ;
int size;
public:
vector(int m) // create a null vector
{
v=new int[size = m];
for(int i=0;i<size;i++)
v[i]=0;
}
vector(int *a) //create a vector from an array
{
for(int i=0;i<size;i++)
v[i]=a[i];
}
int operator*(vector &y) //scalar product
{
int sum=0;
for(int i=0;i<size;i++)
sum+=this->v[i]*y-v[i];
return sum;
}
};
int main()
{
int x[3]={1,2,3};
int y[3]={4,5,6};
vector v1(3); //create a null vector of 3 integers
vector v2(3);
v1=x; //create v1 from the array x
v2=y;
int R=v1*v2;
cout<<”R=”r;
return 0;
}
После выполнения выше программ я получаю ошибку сегментации в этой точке («v1 = х»;) Может ли один пожалуйста, объясните, почему я получаю ошибку сегментации.ошибки сегментации при инициализации объекта
'v1 = x; // создаем v1 из массива x', вы не создаете 'v1', вы присваиваете ему значение. – nouney
В коде есть как минимум 2 опечатки. Пожалуйста, всегда скопируйте-вставьте код, который воспроизводит проблему, а не вводит ее в поле зрения. – user2079303
Мне любопытно, есть ли причина не использовать контейнеры стандартной библиотеки? Или просто ты о них не знаешь? Все, что вы получите с помощью такого кода, - это ваше время: современный C++ обескураживает использование необработанных указателей и обработку памяти (кроме того, не изобретая колесо). – kebs