I am receiving segment fault with this program
Code:
#include <iostream>
#include <new>
#include <cstdlib>
using namespace std;
class ar
{
int *p;
int size;
public:
ar(int sz){
cout<<"Initializing array in Constructor\n";
try {
p = new int[sz];
}
catch(bad_alloc xa){
cout <<"Allocation Failure\n";
exit(EXIT_FAILURE);
}
}
ar (const ar &a);
~ar(){cout << "Destructor is called\n";delete []p;}
void set_val(int i,int j){if(i>0&&i<size) p[i]=j; }
void get_val(int i){cout<<"Val is :"<<p[i];cout<<"\t";}
};
ar::ar(const ar &a)
{
int i;
try
{
p = new int[a.size];
}
catch(bad_alloc sp)
{
cout<<"Allocation Failure\n";
exit(EXIT_FAILURE);
}
for (i=0;i<a.size;i++) p[i]=a.p[i];
}
int main()
{
ar a(5),b(5);
b=a;
for(int i=0;i<5;i++)
a.set_val(i,i);
b.set_val(2,3);
b.set_val(3,63);
b.set_val(4,983);
for(int i=0;i<5;i++)
a.get_val(i);
cout<<"\n============ Copy Constructor goes here==============\n" ;
ar c(b);
for(int i=0;i<5;i++)
c.set_val(i,i);
//c.set_val(2,3);
//c.set_val(3,63);
//c.set_val(4,983);
for(int i=0;i<5;i++)
a.get_val(i);
return 0;
}
1. I am getting segment fault after the following statement
cout<<"\n============ Copy Constructor goes here==============\n" ;
Thanks in advance