임베디드

임베디드

  • 분류 전체보기 (1142)
    • PL (150)
      • C++ (108)
      • Python (39)
      • Java (3)
      • Kotlin (0)
    • 알고리즘 (462)
      • 암기 (91)
      • 백준 (328)
      • 삼성 (17)
      • 종만북 (4)
      • 프로그래머스 (22)
    • 임베디드 (411)
      • 하드웨어지식 (12)
      • ATmega128 (98)
      • 32F429IDISCOVERY (57)
      • 임베디드리눅스 (15)
      • 리눅스커널스터디16기 (2)
      • 리눅스시스템프로그래밍 (97)
      • 운영체제 (26)
      • 컴퓨터구조 (4)
      • dd (1)
      • ubuntu (81)
      • opencv (18)
    • 드론 (99)
    • TIP (12)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

임베디드

컨텐츠 검색

태그

#linuxbirthday_a_message_from_Seoul_Korea !!

최근글

댓글

공지사항

아카이브

PL/C++(108)

  • 컴파일 에러와 런타임 에러

    2019.11.18
  • for문 증감부분에서의 ++i와 i++의 차이

    2019.11.17
  • friend 함수, 클래스 올바르게 사용하기

    2019.11.17
  • new 연산자를 이용한 2차원 배열 할당

    2019.11.16
  • 가상 소멸자가 필요한 이유

    2019.11.16
  • 큐 연결리스트로 구현하기

    2019.11.15
컴파일 에러와 런타임 에러

[참고] https://spaghetti-code.tistory.com/35 #include int main(void) { void* ptr = NULL; int a = 3; ptr = &a; printf("%d\n", *ptr); } 위 에러는 '식이 완전한 개체 형식의 포인터여야 합니다'라고 컴파일 오류를 낸다. '타입체크 에러'로 분류되는 것 같다 [수정 후] #include int main(void) { void* ptr = NULL; int a = 3; ptr = &a; printf("%d\n", *(int*)ptr); } 할당되지 않는 영역에 대해서 읽기를 시도할 때는 런타임 에러를 발생시킨다 #include int main(void) { printf("%d\n", *(int*)(0x0A0A)..

2019. 11. 18. 15:07
for문 증감부분에서의 ++i와 i++의 차이

i++, ++i 증감연산자를 하면 실제로 연산자 오버로딩으로 들어가게 된다 전위 증가연산자는 자신의 객체가 그대로 반환되도 되기 때문에 빠르지만, 후위 증가연산자는 다음 행에서 변화가 생겨야하므로 객체를 복사하는 부분이 따로 이뤄지기 때문에 전위연산자를 다시 한 번 호출하기 때문에 조금 느리다. 하지만 큰 차이는 없는 것 같다

2019. 11. 17. 11:51
friend 함수, 클래스 올바르게 사용하기

클래스 간 상호작용을 위해서 friend 키워드가 가끔 사용된다. 캡슐화에 위배되는 사항이라 사용은 지양되지만 실제로 연산자 오버로딩 등 절대적으로 필요한 부분이 있다 다음 코드는 클래스 A에 private 멤버에 접근하려고하니 오류가 발생한 것이다 #include using namespace std; class A { private: int m_value = 1; }; void printA(A &a) { cout

2019. 11. 17. 11:45
new 연산자를 이용한 2차원 배열 할당

malloc과 비슷하게 먼저 각 행에 대한 base 주소를 할당하고 주소 하나당 열에 맞춰서 크기를 할당해서 2차원 배열을 만들 수 있다. new의 장점은 할당을 하면서 초깃값을 정할 수 있다는 점이다 #include using namespace std; int main(void) { int **ptr = new int*[3]; for (int i = 0; i < 3; i++) { ptr[i] = new int[5]{ 1, 2, 3, 4, 5 }; } for (int i = 0; i < 3; i++) { for (int j = 0; j < 5; j++) { cout

2019. 11. 16. 15:31
가상 소멸자가 필요한 이유

다형성에서 주로 거론이 된다. 주로 자식 클래스인 derived는 누구에게서 만들어졌는지 종종 모를 때가 많다. 따라서 base 클래스의 포인터를 선언해서 자식 클래스를 지정해서 삭제하는 경우가 대부분이다 #include using namespace std; class Base { public: ~Base() { cout

2019. 11. 16. 14:30
큐 연결리스트로 구현하기

포인터를 이용해 동적할당을 완전히 이해한 예제 영역을 할당받을 때는 매개변수로 전달할 때는 포인터 변수도 복사가 되기 때문에 포인터 변수의 주소를 넘기거나 할당된 영역을 반환받는 함수로 짜야한다 [참고] https://www.geeksforgeeks.org/queue-linked-list-implementation/

2019. 11. 15. 16:45
1 2 3 4 ··· 18
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바