본문 바로가기 메뉴 바로가기

풀풀풀

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

풀풀풀

검색하기 폼
  • 분류 전체보기 (60)
    • coding test (4)
      • 백준 (3)
      • swea (0)
    • algorithm & data structure (6)
    • programming language (10)
      • c++ (9)
      • java (1)
    • android (6)
    • spring (5)
    • windows (7)
    • interview (16)
      • OS (6)
      • Network (8)
    • etc (6)
  • 방명록

programming language/c++ (9)
[C++] char[] 와 char*의 차이

char[]와 char*의 차이에 대해서 간단한 예제를 통해 설명해보겠습니당! ^-^ 차이점 1 _ sizeof 의 값 char a[100]; cout

programming language/c++ 2020. 6. 12. 16:37
[c++] #define, 전처리 명령어 define, 매크로 상수/함수

#define#define은 매크로 상수와 함수를 정의하기 위해서 사용한다.예를 들면 #define PI 3.141592 위의 코드는 PI를 3.141592로 정의한 것이다.즉, printf("%f \n", PI); 는 컴파일 전에 printf("%f \n, 3.141592); 로 치환되어 번역될 것이다. 이 때 PI를 매크로 상수라 한다. 주의할 점#define A B C - A를 B C로 정의한 것 (o)- A B를 C로 정의한 것 (x) 매크로 상수를 사용하는 이유- 상수에 비해 메모리를 차지하지 않는다.- 프로그램을 읽기 좋게 만든다.- 프로그램의 유지보수를 쉽게 만든다. 매크로 함수 기본 형태는 아래와 같이 사용한다. #define MAX(a,b) a>b?a:b 하지만 매크로 함수를 사용할 때 ..

programming language/c++ 2018. 7. 5. 16:34
[c++] 복사생성자, 깊은 복사(Deep Copy)

복사생성자복사생성자는 객체의 복사본을 생성할 때 호출되는 생성자이다.클래스를 작성할 때 복사생성자를 생략하면 디폴트 생성자처럼 컴파일러가 알아서 만들기 때문에 필요하지 않다면 정의하지 않아도 된다.그렇다면, 복사생성자를 정의해야 하는 경우는?클래스 내부에서 메모리를 동적 할당 및 해제하고 이를 멤버 포인터 변수로 관리하고 있는 경우이다. 우선 복사생성자의 문법은 아래와 같다. 클래스이름(const 클래스이름 &rhs); 복사생성자를 사용한 예제를 보면서 복사생성자를 사용해야하는 경우를 더 자세히 살펴보겠다. 예제 코드 class CMyData { public: CMyData(int nParam) { m_pnData = new int; *m_pnData = nParam; } // 객체가 소멸하면 동적 할당..

programming language/c++ 2018. 7. 5. 10:30
[c++] struct와 class의 차이

struct (구조체) int main() { struct Point { int x; int y; }; Point p1 = {30, 50}; Point p2; p2 = p1; return 0; }위의 예제를 보면 Point라는 구조체를 정의한것을 볼 수 있다. 특징- 구조체의 초기화는 배열을 초기화하던 방법과 비슷한 방법을 사용해서 할 수 있다.- 점(dot)을 사용해서 멤버에 접근한다.- 구조체를 정의하고 나서 마지막에 꼭 세미콜론(;)을 붙여야한다. class class Point { public : int x, y;// 멤버 변수 Point();// 생성자 }; Point::Point() { x = 0; y = 0; } int main() { Point pt;// 객체 생성 return 0; }위의..

programming language/c++ 2018. 6. 14. 16:42
[c++] freind 함수

friend #include class CComplex{ float a, b; public : CComplex(float ta = 0.0, float tb = 0.0) { a = ta; b = tb; } void Add(CComplex c) { a += c.a; b += c.b; } }; int IsEqual(CComplex a, CComplex b) { return a.a==b.a && a.b==b.b ; } void main() { CComplex a(1.0, 2.0), b(1.0, 2.0); printf("%d \n",IsEqual(a, b)); } 위 프로그램은 컴파일이 되지 않는다. 이유는 IsEqual()이 CComplex의 private 멤버 a와 b를 접근하기 때문이다. 이에 대한 해결 방..

programming language/c++ 2018. 6. 12. 17:30
[c++] StringCbCopy, StringCchCopy

안전한 문자열 함수- StringCbCopy : 버퍼의 크기 ( 버퍼가 몇 바이트의 크기인가 ) HRESULT StringCbCopy ( OUT LPTSTR pszDest,// 복사 결과를 저장할 버퍼 IN size_t cbDest, (sizeof(TCHAR))// 복사 결과를 저장할 버퍼의 크기 => pszDest의 크기 IN LPCTSTR pszSrc// 복사 원본 (NULL 포함된 문자열) ) - StringCchCopy : 버퍼의 길이 ( 버퍼가 문자열 몇 개를 담는가 ) HRESULT StringCchCopy ( OUT LPTSTR pszDest,// 복사 결과를 저장할 버퍼 IN size_t cchDest, (STRSAFE_MAX_CCH)// 복사 결과를 저장할 버퍼의 크기 => 저장할 글자 ..

programming language/c++ 2018. 6. 12. 09:41
[c++] malloc/free, new/delete

malloc / free- malloc 은 "stdlib.h" 헤더파일에 포함되어 있다.- malloc 함수는 입력받은 바이트 크기만큼 메모리 공간을 Heap Memory에 할당해준다. 그리고 void *를 리턴하므로 sizeof 연산자와 캐스트 연산자가 필요하다. - malloc 은 할당만 해주고 초기화는 해주지않는다.- realloc으로 크기를 바꿔 재할당 할 수 있다.- malloc으로 할당 받은 메모리는 free를 통해 해제한다.예제) int *p; p = (int *)malloc(sizeof(int)); free(p); new / delete- new/delete는 c++ 언어에서 키워드로 제공한다. 따라서 헤더파일이 필요없다. - new 키워드 역시 Heap 에 할당하고, 할당할 타입을 지정하..

programming language/c++ 2018. 6. 11. 14:28
[C++] MultiByteToWideChar, WideCharToMultiByte 함수

MBCS ( MultiByteCharacterSet )- 다양한 Byte 수를 사용(1Byte + 2Byte)- 아스키코드 WBCS ( WideByteCharacterSet )- 2Byte만 사용- 유니코드일반 유니코드 : 모든 글자를 2byte로 표현utf-8 유니코드 : 영문/숫자/기호는 1byte, 한글/한자는 3byte로 표현 1. 유니코드 → 멀티바이트/UTF-8WideCharToMultiByte) int WideCharToMultiByte( UINT uCodePage, // code page DWORD dwFlags, // 플래그 PCWSTR pWideCharStr, // 변환원의 문자열 주소 int cchWideChar, // 문자열의 길이 PSTR pMultiByteStr, // 버퍼 주소..

programming language/c++ 2018. 6. 7. 21:07
이전 1 2 다음
이전 다음
공지사항
최근에 올라온 글
  • [JPA] JPA 장점/사용하는⋯
  • [Spring boot] Controller⋯
  • [Spring boot] 스프링부트⋯
  • [Spring boot] IntelliJ -⋯
최근에 달린 댓글
  • 굿잡
  • 안녕하세요. 우연히 검색하다⋯
  • seq number가 랜덤한 이유에⋯
  • 우아 간단 명료하게 딱딱 들⋯
Total
77,497
Today
20
Yesterday
88
링크
TAG
  • WinDbg
  • 스프링부트
  • HTTP
  • handshake
  • 백준알고리즘
  • 퀵정렬
  • 백준
  • C
  • 안드로이드
  • 정렬 알고리즘
  • 운영체제
  • adapter
  • Android
  • DATABASE
  • layout
  • BOJ
  • 윈도우
  • 이진탐색트리
  • C++
  • OS
  • 네트워크
  • debug
  • 스프링
  • windows
  • LinearLayout
  • listview
  • RelativeLayout
  • 알고리즘
  • frameLayout
  • ConstraintLayout
more
«   2022/05   »
일 월 화 수 목 금 토
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        
글 보관함
  • 2021/01 (4)
  • 2020/12 (1)
  • 2020/06 (4)
  • 2020/04 (1)

Blog is powered by Tistory / Designed by Tistory