알고리즘
-
c++ 에서 srand 함수알고리즘/C++ 2019. 1. 30. 18:19
c++로 코드를 구성하다보면 > include > srand(3)과 같이 선언되어 있는 경우가 있다.이 함수는 stdlib.h 파일 아래에 위치하며, 호출할 때 () 안에 들어가는 전달받는 인자를 기반으로 해서 난수를 초기화 해주는 함수이다.이를 이용하면 항상 rand() 랜덤값을 뽑아낼 때 고정된 값으로 뽑아낼 수 있다. -> 교육자료 같이 동일한 랜덤값을 유지해야 할 때 유리#include #include using namespace std;int main(void){ srand(3); int a = rand(); cout
-
#include <stdio.h> 의미알고리즘/C++ 2019. 1. 28. 18:15
C 프로그램을 작성할 때 가장 상단에 #include 를 보통 적어놓은 뒤 시작한다.#include 위의 의미는 내가 현재 작성하고 있는 소스코드에 표준 입출력과 관련한 stdio.h(헤더파일)을 호출하여 시용하겠다는 의미이다.쉽게 말하면 출력을 위한 printf 와 같은 함수를 사용하기 위해 이 함수가 정의되어 있는 stdio.h 안의 입출력과 관련한 코드를 함께 사용하겠다는 의미이다. # include int main() { printf("%d\n", 1); return 0; }
-
c++ 에서 extern 사용법(다른 소스 전역변수 사용하는법)알고리즘/C++ 2019. 1. 28. 17:52
c++로 코딩을 하다보면 다른 파일에서 선언한 전역변수를 가볍게 호출만 하여 현재 플젝에서 사용하고 싶을 때가 있다.이럴 때는 extern 으로 선언을 하여 사용하면된다. source.cpp 라는 파일에 int number = 100 이라고 선언된 전역변수를 main.cpp 라는 파일에서 호출하여 사용하고 싶다면 main.cpp 젤 위쪽에 extern int number; 를 선언해 준뒤 사용하면 된다.ex) source.cpp#include int number = 100; main.cpp# include extern int number;int main(){ printf("%d\n", number); return 0; }성공!
-
Cannot initialize a variable of type 'int' with an rvalue of type 'void *' 에러 해결법알고리즘/정리 및 오류 해결 방법 2018. 12. 9. 16:58
변수 선언 오류Cannot initialize a variable of type 'int' with an rvalue of type 'void *' 와 같은 에러는 흔히malloc() 과 같은 함수를 통해 변수를 선언할때 자주 발생한다.ex)> int temp = malloc(sizeof(int));> Cannot initialize a variable of type 'int' with an rvalue of type 'void *' 이러한 경우의 이유는 malloc() 함수로 선언되는 경우에는 void* 형식으로 선언이 되어 int 변수에 할당할 수가 없기 떄문에 발생한다. 따라서 (int*) 와 같은 식으로 변환을 시킨 뒤 선언해 주면 할당된다.> int* temp = (int*)malloc(size..
-
댕글링 포인터 문제: free 함수를 이용해도 계속 호출 되는 문제알고리즘/정리 및 오류 해결 방법 2018. 12. 9. 16:47
아래와 같이 변수를 malloc() 함수를 이용해 호출해 준뒤 메모리 누수를 없애기 위해 free() 함수로 해제를 하여도 계속 호출되는 문제가 발생할 때가 있다.> int* arr = (int*)malloc(sizeof(int)); > arr[1] = 1;> free(arr);> std::cout int* arr = (int*)malloc(sizeof(int));> arr[1] = 1;> free(arr);> arr =NULL;
-
c++ malloc() 함수 설명알고리즘/정리 및 오류 해결 방법 2018. 12. 9. 16:38
malloc 은 memory allocation 의 약자로 메모리를 사용하기위해 바이트 단위로 메모리 공간을 확보하고 예약된 공간에 대한 포인터를 리턴한다.보통 sizeof 연산자를 사용하며 아래와 같이 int(4바이트) 크기만큼 메모리를 할당하는 등개발자가 원할 떄 원하는만큼 동적으로 메모리를 할당 할 수 있다.> malloc(sizeof(int));이 때 size가 0으로 지정되거나 메모리 할당에 실패하면 리턴 값은 NULL 이다.정상적으로는 메모리의 주소 즉, 첫번째 바이트의 주소를 리턴한다.ex)> std::cout 0x1004563f0 근데 malloc 을 할당할 때 어떠한 데이터 형을 저장하는지를 컴퓨터는 모르기 때문에 앞쪽에(int*) 와 같은 걸 추가해 변환해야한다.> int* arr = ..
-
소수인지 판단하는 법 c++ 코드알고리즘/C++ 2018. 11. 25. 13:15
소수란?소수는 1이 아닌 자연수 중에서 1과 자기 자신 이외의 약수를 갖지 않는 수를 뜻한다.문제 예시31이 소수인지를 구하시오팁루트를 이용하여 시간을 반으로 줄인다. 소수가 아닌 수는 곱셈으로 표시되는 숫자이며 어차피 반대편수의 반복이기 때문이다. 예를 들면12의 경우 2 6 / 3 4 / 4 3 / 6 2와 같은 식의 약수의 곱이 안오는데 3 4 이후로는 앞에 나온 숫자를 자리만 바꾸어 반복하는 것이기 때문이다.풀이C++ 소스 코드#include #include // 소수인지 판단bool primeNumber(int n){ if(n