C 2

[C] 인덱스 검사(경계 검사)에 대하여

오늘은 인덱스 검사에 대해 공부를 했다. 많은 사람들이 경계 검사와 인덱스 검사를 혼용해서 사용하는데, 엄밀히 따지면 경계 검사가 더 포괄적인 단어이다. (통상적으로는 경계 검사를 인덱스 검사라고 부른다고 한다 - 참고) 오늘 공부한 내용은 경계 검사 중 인덱스 검사에 대해 공부를 했다. 인덱스 검사란 접근할 배열의 인덱스가 정의했던 경계 안에 존재하는지 확인하는 검사이다. C언어는 빠른 실행 속도를 위해 경계 검사를 자동으로 수행하지 않는다. 컴퓨터 언어를 공부한 지 1년 반만에 알았지만 중요한 개념이니 제대로 정리를 해보자. 프로그래밍을 글로 배우기는 쉽지 않으니 적절한 예시를 만들어보았다. #include int main() { int i, a[40]; for (i = 0; i < 40; i++) ..

Computer_Language/C 2019.08.31

[C] 위치를 기록하는 동안 액세스 위반이 발생했습니다. 에 관하여

C는 내가 처음으로 공부했던 컴퓨터 언어이다. 백준 문제도 많이 풀어보고, 게임을 만들거나 자료구조를 시각화하는 등 다양하게 코딩을 했던 것 같다. 오늘은 처음으로 C에 대해서 깊게 공부하게 되었던 "액세스 위반"에 대해 정리를 해보려고 한다. 1. 어떤 경우에 위반이 떴나? 내가 경험했던 경우는 두 가지이다. 1. 메모리 할당이 되지 않은 포인터를 잘못 사용할 경우. 2. 읽기 전용 메모리에 쓰기를 수행할 경우. 1번의 경우는 "할당되지 않은 메모리를 사용하려고 할 때"라고 표현해도 좋을 것 같다. 2. 직접 액세스 위반을 발생시켜보며 공부하자 먼저 "1. 메모리 할당이 되지 않은 포인터를 잘못 사용할 경우."에 대해 공부해보았다. 예제 1-1) 정상적인 오류가 없는 정상적인 코드이다. #include..

Computer_Language/C 2019.08.27