일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Javascript
- 함수
- 포인터
- Programming
- 백준
- 연산자
- c++
- VS ERROR
- tipssoft
- 알고리즘
- c
- doit코틀린프로그래밍
- Direct2D
- 티스토리
- Win32
- CS
- Windows
- Tips강좌
- c#
- 이지스퍼블리싱
- Tips프로그래밍강좌
- 문법
- 프로그래밍
- Desktop
- 지식나눔강좌
- 배열
- Kotlin
- 리뷰
- Visual Studio
- 김성엽
- Yesterday
- Today
- Total
목록VS ERROR (15)
F.R.I.D.A.Y.
VS ERROR E1087 해당 오류는 여러 이유로 발생할 것으로 생각된다. 따라서, 각 파트에 맞추어 작성하겠다. 함수 한정자 const 사용 코드를 작성할 때, 클래스 메서드에서 멤버 필드에 쓰기를 제한하도록 하는 구문이 있다. class test{ private: int a; public: void accessA() const{ a = 5; // error } } 이런 식의 구조인데, 코드를 보게 되면, accessA 함수 뒤에 const로 한정자가 작성되어 있다. 멤버 함수 뒤에 붙는 const가 객체에 접근해 쓰기를 제한하도록 하는 구성이다. 원인 E1087 에러가 나는 방식 중 하나는 const 메서드에서 에서 일반 메서드를 호출할 때 이다. int Test::a() const{ b(1);//..
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
프로그램을 작성하다 보면 위와 같이 쓰기용으로 열 수 없다는 오류 표시가 종종 나옵니다. 오늘 포스트에서는 LNK1168 오류가 왜 일어나고 해결방법은 무엇인지 알아봅니다. 원인. 프로그램이 실행되어있음 이 경우에는 프로그램이 이미 실행된 상태이기 때문에 임의 수정을 하지 못하도록 쓰기 접근을 막아 발생하는 문제입니다. 잘 살펴보면 이미 프로그램이 실행된 상태인것이죠. 해결. 프로그램 종료 이 문제는 이미 실행된 프로그램을 종료하는 것으로 문제를 해결할 수 있습니다. 만일 작업 표시줄에 프로그램이 안보인다면 프로세스 매니저, 즉 작업 관리자를 열어 계속 실행이 되고 있는지 확인해보세요.
오늘 시간에는 for 사용시 잘못 사용할 때 2019인텔리센스가 제공하는 C6292 경고를 살펴봅니다. C6293 경고는 이곳을 참고하세요. 그나저나 이젠 이런 것도 경고를 해주네요 :) 원인. 조건식에 맞지 않는 증감식 원인이 되었던 코드는 다음과 같습니다. for (int i = 100; i > 0; ++i) { } 코드상에선 i값이 작아져야하지만 계속해서 증가하고 있습니다. 물론 오버플로우가 발생하면 멈추겠지만 제대로 된 결과가 나올리는 없습니다. 해결1. 증감식 수정 이 경고는 증감식을 수정하거나 조건식을 수정하는 방법으로 제거할 수 있습니다. 그러나 일반적으로는 조건식에 맞추어 코드를 작성하고 증감식을 틀린 경우가 많습니다. for (int i = 100; i > 0; --i) { } 코드에 맞..
Visual Studio가 2017에서 2019로 넘어오며 인텔리센스가 더욱 정교화됐습니다. 이러한 인텔리센스의 업그레이드로 2017에선 하지 않던 경고가 2019에선 하는 경우가 많아졌는데, 이번에 소개할 경고도 같은 경우입니다. 이번 포스팅에서는 C6011 경고가 왜 생기고 어떻게 하면 사라지게 할 수 있는지 알아봅니다. 원인. 잠재적 버그 가능성 #include #include int main(void) { int* p = (int*)malloc(sizeof(int) * 10); for (int i = 0; i < 10; ++i) { p[i] = i + 1; } free(p); return 0; } 대부분의 컴퓨터에서는 문제가 발생하지 않을 코드이지만, 이 코드도 결국 잠재적인 문제를 일으킬 수 있..
아래 코드를 컴파일러에 올리면 C1075 오류가 나옵니다. 이번 시간에는 C1075오류가 왜 나오는지 알아봅시다. #include int main(void) { printf("Hello world!\n"); int a = 5, b = 3; if (a < b) { } else { if (a == b) { } else { } return 0; } 원인 이 문제의 원인은 중괄호의 짝을 맞춰주지 않았기 때문입니다. 대부분의 프로그래밍 언어는 중괄호를 기준으로 변수의 생명주기, 연산을 진행할 코드가 결정됩니다. 해결 중괄호 짝을 맞춰주면 됩니다. #include int main(void) { printf("Hello world!\n"); int a = 5, b = 3; if (a < b) { } else { if..
※ VS2019 기준으로 작성되었습니다. #include int main(void) { int v; scanf("%d", &v); return 0; } 위와 같이 작성하면 다음과 같은 경고가 발생합니다. 경고 수준에 따라 오류로 발생할 수 있습니다. 여기서 C4996 오류는 다음 항목을 참고하세요. 이번 포스트에서는 C6031 오류를 다루겠습니다. 원인 함수 scanf의 반환값을 어딘가에 대입하거나 사용하지 않아서 발생하는 경고입니다. 코드상 문제도 없으며, 단순히 버려지는 값이 있음을 알리기 위해 인텔리센스가 안내하는 내용입니다. 만일 원하는 작업대로 정상 동작 한다면 무시하셔도 됩니다. 경고 가리기 경고를 가리고싶다면 아래 안내를 따라하세요. Plan1. 프로젝트 속성 수정 상단 [프로젝트 - 속성]..
종종 프로그램을 작성하다가 보면 아래와 같은 런타임 오류가 발생하는 경우가 있습니다. 이 문제는 왜 발생하는걸까요? 위 문제는 아래 코드로부터 발생되었습니다. #include int main(void) { int a; printf("변수 a의 값은 %d입니다.", a); return 0; } 위 코드를 작성하고 컴파일을 진행하면 아래와 같은 경고가 발생합니다. 컴파일러 경고 수준에 따라 경고가 오류로 발생할 수도 있습니다. 1. 원인 말 그대로 a 변수를 초기화 하기 전에 해당 변수를 사용해 발생하는 문제입니다. 변수를 처음 만들게 되면 기존 메모리에 들어있는 값을 그대로 사용하게 되기 때문에 어떤 값이 들어있는지 알 수 없습니다. 그래서 예외 발생의 가능성이 있죠. 따라서 프로그램이 변수에 들어있는 값..
#pragma warning(disable:4996) #include #include // strcpy 사용을 위한 string.h 헤더 추가 int main(void) { char *str1 = "hello"; char str2[20] = { 0, }; strcpy(str2, str1); printf("%s\n%s\n", str1, str2); return 0; } 잠재적으로 문제를 일으킬 수 있는 코드는 모여서 큰 오류를 일으킬 수 있으니 하나하나 해결해보세요. 사라지는 오류/경고 항목을 보면서 희열을 느끼실 때가 올겁니다 :)