C언어 데이터 2

[C 언어] [Embedded] 메모리 동적 할당에 대해 (2)

오늘은 지난글에 이어 Embedded system에서 메모리 동적할당을 대체하여 사용가능한 기법에 대해 적어보려 한다. 먼저 지난 포스팅에서 말한 동적할당의 리스크는 아래와 같다. 1. 동적할당의 리스크 1. 메모리 할당 실패에 따른 예외처리 - malloc을 이용했을 때 NULL pointer를 반환받았을 경우 2. 디바이스 속도 저하 - malloc에 의한 코드 동작 속도 저하로 잠재적 품질 리스크 발생 3. 메모리 공간 예측 실패 - malloc으로 할당시 관리 테이블로 인해 할당받은 메모리보다 더 많은 점유로 인해 메모리 부족 현상 발생 2. 대체가능한 기법들 위의 리스크를 줄일 수 있는 기법들을 몇가지 소개하려 한다. 이러한 기법들은 내가 실제로 개발하면서 적용해본 것도 있고, 전문 서적 또는 ..

Embedded 2023.01.19

[C 언어] sizeof 연산자에 대하여

내가 firmware 개발을 처음 했을때 sizeof 연산자에 대해 잘못 알고 사용하여 디버깅을 했던 케이스가 생각나 이 포스팅을 하게 되었다. sizeof에 대해 제대로 알고 있는지 스스로 한번 점검해보는 기회가 되면 좋을 것 같다. 1. sizeof 의 정체 1 2 3 4 int a; printf("%d\n", sizeof(a)); printf("%d\n", sizeof a); cs sizeof를 함수로 잘못 알고 쓰는 사람들이 꽤 많다. 위의 코드에서 sizeof(a)로 사용하는 케이스가 많다보니 기존 코드를 재사용하여 습관적으로 사용하는 사람들은 라이브러리 함수로 오해를 한다. 그러나 sizeof는 ++ -- * 등과 같은 연산자이기 때문에 연산자 우선순위의 법칙에 영향을 받고 위 코드와 같이 (..

C언어 2023.01.11
728x90