전체 글 (774) 썸네일형 리스트형 Segmentation fault 사례4 [1. 개요]보통 배열에 대한 for 문은 0 ~ n 까지 증가하는 방식으로 작성하는 경우가 많은데,반대로, n ~ 0 까지 감소하는 경우로도 (역 방향) 작성 할 수 있다. 이때, 실수 할 만한 부분은 아래와 같은 반복문이다.for (unsigned int idx=n-1; idx >= 0; idx--) { // something. // access arr[idx]} 문제는 변수 idx 의 자료형이 unsigned 라는 것이다.idx == 0 인 경우 배열 접근이 가능하나, 여기서 -1 을 하는 순간 -1 을 unsigned 로 해석하여 매우 큰 수가 되어 버린다.0xffffffff그래서, idx 가 0 보다 작아지는 경우는 절대 발생 할 수 없고, 매우 큰 번지 수를 참조하려는 비정상 상황이.. Segmentation fault 사례3 [1. 개요]힙 메모리 관련 하여, SIGSEGV 시그널 발생 사례 중...free(): invalid pointer 오류 발생하는 경우가 있음. 구체적인 상황은new[] 를 이용하여, 동적 길이의 배열을 생성해당 배열을 사용delete[] 를 이용하여 리소스 해제 => 이 때 오류가 발생하는데...문제는 gdb 를 통해서 delete[] 한 메모리 주소가 오염되었는지 확인해보았는데,최초 할당 시, 받은 주소였고,심지어, 해당 메모리에 접근하여 배열 내 값도 정상적으로 확인 할 수 있었음.즉, 아래와 같은 상황은 아니라는 것이다.double free 를 시도한다 던가...new[] 로 할당한 메모리를 단순히 delete 로 해제한다 던가...[2. 원인]위 상황에 대한 원인은 다른 힙 메모리에 발생한 o.. insert 방식에 대한 비교 [1. 개요]INSERT INTOINSERT IGONRE INTOINSERT INTO ~ ON DUPLICATE KEY UPDATEREPLACE INTO table 의 record 를 삽입하기 위한 각 방법의 차이점을 정리위 순서대로 삽입 속도가 빠름.[2. INSERT INTO]가장 기본적인 방법PK 나 unique key 가 중복 된 경우, 에러가 발생하며 삽입되지 않음.가장 빠른 방법[3. INSERT IGNORE INTO]PK 나 unique key 가 중복 된 경우, 경고가 발생하며 삽입되지 않음. [4. INSERT INTO ~ ON DUPLICATE KEY UPDATE]아래 쿼리에서 `id` 가 unique key 로 설정되어 있고,`id`=1 인 record 가 이미 있는 경우, 아래 쿼리.. 이전 1 ··· 18 19 20 21 22 23 24 ··· 258 다음