#include <iostream>
#include <vector>
using namespace std;
template<class T>
class test
{
public:
void addItem(T element){
elements.push_back(element);
}
T getItem(int i){
return elements[i];
}
vector<T> elements;
};
int main()
{
char * cpt[]={"tab","tab2","tab3"};
test<char*> test1;
test1.addItem(cpt[1]);
char * item=test1.getItem(0);
//Segmentation fault
// could it be done without specialisation class for char* ?
item[0]='Z';
cout<<item<<endl;
for(auto v:test1.elements) cout<<v<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgdGVzdAp7CiBwdWJsaWM6CgogIHZvaWQgYWRkSXRlbShUIGVsZW1lbnQpewogIGVsZW1lbnRzLnB1c2hfYmFjayhlbGVtZW50KTsKICB9CiAgVCBnZXRJdGVtKGludCBpKXsKICByZXR1cm4gZWxlbWVudHNbaV07CiAgfQogIHZlY3RvcjxUPiBlbGVtZW50czsKfTsKCmludCBtYWluKCkKewpjaGFyICogY3B0W109eyJ0YWIiLCJ0YWIyIiwidGFiMyJ9Owp0ZXN0PGNoYXIqPiB0ZXN0MTsKdGVzdDEuYWRkSXRlbShjcHRbMV0pOwpjaGFyICogaXRlbT10ZXN0MS5nZXRJdGVtKDApOwovL1NlZ21lbnRhdGlvbiBmYXVsdAovLyBjb3VsZCBpdCBiZSBkb25lIHdpdGhvdXQgc3BlY2lhbGlzYXRpb24gY2xhc3MgZm9yIGNoYXIqICAgID8KaXRlbVswXT0nWic7CmNvdXQ8PGl0ZW08PGVuZGw7CmZvcihhdXRvIHY6dGVzdDEuZWxlbWVudHMpIGNvdXQ8PHY8PGVuZGw7CnJldHVybiAwOwp9Cg==