일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Tips강좌
- Visual Studio
- 백준
- Desktop
- 이지스퍼블리싱
- Win32
- 티스토리
- Direct2D
- 리뷰
- 문법
- 함수
- 지식나눔강좌
- Programming
- tipssoft
- 포인터
- 연산자
- c++
- Javascript
- 김성엽
- 배열
- VS ERROR
- 프로그래밍
- Tips프로그래밍강좌
- c#
- 알고리즘
- Kotlin
- c
- CS
- doit코틀린프로그래밍
- Windows
- Yesterday
- Today
- Total
목록배열 (14)
F.R.I.D.A.Y.
C6385 문제와 동일한 원인으로 발생하는 것으로 판단되는 경고 발생 재현 해당 문제 또한 C6385에서 언급한 것처럼 포인터 문법을 사용해 동적할당을 하는 경우에 잘 발생합니다. MS 공식 문서에 따르면 범위를 벗어난 공간에 접근하는 경우 문제가 발생하므로 해당 문제를 알아차릴수 있도록 C6386 경고를 띄우는 것으로 알려져 있습니다. 원인 C6385와 마찬가지로 Visual Studio[# Microsoft Visual Studio Community 2019 버전 16.10.2]의 인텔리센스의 문제로, 코드에서 범위를 알 수 없기 때문에 해당 경고를 발생시킵니다. 경고 해제 경고 해제는 다음 포스트를 참고하세요. pragma disable vs pragma suppress 경고 예외 처리를 위해 코드..
메모리 관련 작업을 하면 주로 보이는 C6385 발생 재현 C6385 경고는 주로 메모리 할당 관련 작업을 할 때 일어납니다. MS 공식 문서의 내용을 보면 접근이 허용된 메모리 공간을 벗어난 경우에 이런 경고를 띄우는 것으로 안내하고 있습니다. int arr[10]; int i = 0; while(i
C# 자료형 및 변수 선언 # 해당 시리즈는 C++과 비교하며 포스트가 진행됩니다. # 기반은 링크된 사이트입니다. 자료형 C#은 기본적으로 128bit 정수까지 표현 가능한 .Net 자료형을 제공한다. 대부분 C++과 비슷한 구성을 가지고 있으며, 선언 또한 비슷하다. bool true/false (s)byte 8비트 (unsinged) 정수 (u)short 16비트 (unsigned) 정수 (u)int 32비트 (unsigned) 정수 (u)long 64비트 (unsigned) 정수 float 32비트 단정밀도 부동소수점 double 64비트 배정밀도 부동소수점 decimal 128비트 정수 char 16비트 유니코드 문자 string 유니코드 문자열 System.DateTime 날짜 및 시간(C# ..
프로그램에 일상을 더하는 첫 번째 시간, 배열을 사용한 여러 항목 정렬하기입니다. 정렬하기 정렬이란 무엇을 뜻할까요? 네이버 사전을 찾아보면 아래처럼 알려주네요. 특정 기준으로 줄 세우기를 하는 것입니다. 한 가지 항목 정렬하기 우리는 먼저 한 가지 항목을 정렬해 볼 겁니다. 들어오는 값은 아래와 같습니다. 5 7 9 3 1 2 8 6 4 10 더보기 # 텍스트 데이터 5 7 9 3 1 2 8 6 4 10 오름차순[# 뒤로 갈수록 값이 커집니다. 그래프로 그리면 점차 올라가는 모양이기 때문에 오름차순입니다. 내림차순은 그 반대이죠.]으로 정렬을 진행해보겠습니다. 값을 입력받는 코드는 아래와 같습니다. #include int main(void){ int arr[10]; for(int i = 0 ; i< 1..
함수 포인터 또한 자료형입니다. 모든 자료형은 배열로 만들 수 있다고 했는데요, 이번에는 함수 포인터 배열을 만들어봅니다. # 배열, 함수 포인터를 먼저 알고 있어야 합니다. 선언 방법 먼저 배열의 선언 방법을 되돌아봅니다. type arrayName[length]; // ex) int arr[10]; 함수 포인터의 선언 방법은 다음과 같습니다. returnType (*var)(parameters); // ex) int (*user_abs)(int); returnType: 함수 포인터로 가리킬 함수의 반환형 parameters: 함수 포인터로 가리킬 함수의 인자 만일 printf를 가리킬 수 있는 함수 포인터 배열을 선언하고자 한다면 아래와 같이 작성하면 됩니다. int (*fp)(const char *..
배열을 만들게 되면 다차원 배열을 만들기도 합니다. 종종 각 요소의 값을 변경해야 하는 경우도 존재합니다. 배열 연산자로 만든 정적 배열과, 포인터와 동적 할당을 이용해 만든 동적 배열을 비교해봅니다. 다차원 배열 선언 포인터와 배열로 2차원[# 포인터에는 맞지 않는 용어이지만 편의상 이렇게 부르겠습니다.] 배열을 만들어 보겠습니다. // using pointer // dynamic array #include #include int main(void){ int **p; p = malloc(sizeof(int*) * 10); for(int i = 0; i
배열 변수의 이름이 0번 인덱스의 시작 주소인 이유 이번 포스트는 제목 그대로 배열 변수의 이름이 어째서 해당 배열의 0번 인덱스의 주소가 되는지 알아봅니다. 간단해요! int arr[10]; &arr[0]; // 처음 배울 때 주로 사용하는 0번 인덱스의 주소를 가져오는 법.. pang2h.tistory.com 위 글에서는 배열의 첫 요소의 주소는 해당 배열의 이름임을 간단히 설명하고 있습니다. 어째서 이런 결론이 나오게 되는지, 어떤 배경이 있었는지 알아보겠습니다. # 여기에서 (정적)배열은 소스코드에 직접 배열 문법으로 선언된 자료형을 말합니다. 태초에 포인터가 있었다 신께서 세계를 만들 때 법칙을 몇 가지 만들었으니, 그중 하나가 指 법칙이라. 이 법칙은 널리 사용되어야 했으며 충분히 많은 곳에서..
변수의 초기화 방법은 각 문법에서 설명했습니다. 다른 언어에서는 잘 사용하고 있었는데 C언어에서는 그 문법을 찾을 수가 없었습니다. 최근에 문법 지원이 이루어지고 있음을 알게 되어, 초기화 문법을 추가로 설명하고자 따로 포스트를 작성합니다. 배열 초기화 우리가 배열을 초기화할 때는 아래와 같이 이용했습니다. int arr1[10] = {0}; int arr2[10] = {1,2,3}; int arr3[10] = {}; 처음이 아닌 중간의 특정 인덱스의 값을 초기화하기 위해서는 일일이 대입하거나, 혹은 그 이전 인덱스에도 초기화 값을 넣어주어야 했습니다. // 4번 째 요소에 값 4를 넣는 초기화 // style 1 int arr1[10] = {0,0,0,4}; // style 2 int arr2[10];..
이전 포스트[# 한참 지난 포스트이긴 하지만..\n 한참 시간이 지난 포스트다 보니 설명하는 어투가 다릅니다. 대표적으로 존댓말로 바뀌었다던지.. 아마도 조만간 개편을 진행해야겠군요.]에서 우리는 자료형과 변수에 대해 공부했습니다. 이번 포스트에서는 배열에 대해 공부해봅니다. 변수 선언하기 이전 시간에 공부했던 내용입니다. 변수 하나에 값 하나. 달리 이야기하면 여러 개의 값을 저장하고 싶다면 그 개수만큼의 변수가 필요하다는 말이 되겠죠. 어떤 학급에 30명의 학생이 있다고 생각해봅시다. 이 학생들의 고유 번호를 저장할 변수가 필요합니다. 그렇다면 30명의 정보를 저장할 30개의 변수가 필요하겠군요. int student1, student2, student3, student4, student5, stud..
지난 시간에 우리는 포인터의 기본적인 내용을 배웠습니다. 포인터(pointer) 잘 배워가던 사람들도 멈추는, 일명 C언어에서 첫 번째 고비라 일컬어지는 포인터입니다. 하다 보면 쉽지만 막상 처음 하면 난생처음 보는 문법에 쓰는 방법도 독특한지라 많이들 힘들어합니다. # 선행으로 함수.. pang2h.tistory.com 이젠 포인터의 한 단계 더 높은, 다차원[# 지난 시간에도 말씀드렸지만 원서의 포인터 파트에서는 차원(dimension)이라는 표현은 없습니다. 역자들이 번역해올 때 정확한 명칭을 정하지 못해 배열의 차원이라는 단어를 가져온 것입니다. 이번 포스트에서는 차원이란 단어로 소개했으므로 차원으로 통일하겠습니다.\n용어를 올바르게 바꾸고자 노력하는 분이 계시니 만일 더 나은 단어나 반대 의견이..