일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Tips프로그래밍강좌
- VS ERROR
- c++
- Javascript
- 티스토리
- Tips강좌
- doit코틀린프로그래밍
- Kotlin
- c
- 리뷰
- Programming
- 지식나눔강좌
- 알고리즘
- Direct2D
- 김성엽
- 이지스퍼블리싱
- tipssoft
- 연산자
- 프로그래밍
- Win32
- c#
- Windows
- 포인터
- 배열
- 문법
- 백준
- Desktop
- 함수
- CS
- Visual Studio
- Yesterday
- Today
- Total
목록인덱스 (2)
F.R.I.D.A.Y.
오랜만에 돌아온 VS ERROR 시리즈입니다. 이번 시간에는 C6385 경고를 살펴봅니다. 문제 코드 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int arr[5] = { 0, }; for (int i = 0; i < 5; ++i) { scanf("%d", arr + i); arr[5] += arr[i]; // 오류 발생 위치 } return 0; } 원인. 접근 가능한 메모리 이탈 위 코드에서 접근 가능한 메모리 인덱스는 0부터 4입니다. 그런데 경고가 발생하는 위치에서는 인덱스를 5로 사용하고 있습니다. 따라서 범위를 수정해주면 정상적으로 경고가 사라집니다. C6201 경고가 함께 발생하는 것을 보니 일차원 배열에 대해서는 스택 범위까지 V..
이번 포스트는 제목 그대로 배열 변수의 이름이 어째서 해당 배열의 0번 인덱스의 주소가 되는지 알아봅니다. 간단해요! int arr[10]; &arr[0]; // 처음 배울 때 주로 사용하는 0번 인덱스의 주소를 가져오는 법입니다. &*(arr + 0); // 처음 코드는 위와 같이 변경할 수 있습니다. &*(arr); // 0은 더하든 말던 값의 변화가 없으므로 지울 수 있습니다. (arr); /* 간접 참조 연산자(*)와 주소 연산자(&)는 곱셈과 나눗셈처럼 서로 상반 관계입니다. 따라서 함께 없앨 수 있습니다. */ arr; // 불필요한 괄호를 지워줍니다. // 따라서 // &arr[0] == arr 입니다. 이 내용은 포인터를 배우다보면 알게되는 내용입니다 :) 이 표현법을 알게 되면 대괄호를 ..