Algorithm
[c++] segmentation fault (core dumped) error / assign() iterator
D0HAN.
2020. 7. 17. 03:11
구글링을 해보면, segmentation fault (core dumped) 에러는 주로
메모리 영역의 잘못된 접근에 의해 일어난다.
문제를 풀다가 assign에서 그런 에러가 나길래 찾아봤다.
template <class InputIterator>
void assign(InputIterator first, InputIterator last);
void assign(size_type n, const T& u);
assign의 정의인데, iterator를 이해하지 못하고 그냥 함수를 가져다 써서 생긴 문제였다.
원래 썼던 코드는 이것이었다.
copy_arr.assign(array[from], array[to]);
* from, to는 int 변수
iterator를 넣어야 하는데 그냥 벡터의 인자에 접근했다.
고친 코드는
vector<int>::iterator aa;
vector<int>::iterator zz;
aa = array.begin() + from;
zz = array.begin() + to +1;
copy_arr.assign(aa,zz);
iterator의 형태로 받으니 정상적으로 작동했다.