분류 전체보기

[CSAPP] 3.10 Combining Control and Data in Machine-Level Programs(기계 수준 프로그램에서 제어와 데이터 결합)
3.10 Combining Control and Data in Machine-Level Programs(기계 수준 프로그램에서 제어와 데이터 결합) C언어에서 가장 중요한 개념인 포인터의 개념에 대해 알아본다. 기계어 프로그램의 상세한 동작을 디버거 GDB를 통해 알아본다. 버퍼 오버플로우가 현실 세계 시스템에서 보안 취약성을 가져오는 것에 대해 알아본다. 함수에 의해 요구된 스택 저장소의 양이 변화하는 경우에 대해 머신레벨 단계에서 어떻게 수행되는지 알아본다. 3.10.1 Understanding Pointers(포인터의 이해) 포인터는 다른 자료구조 내 원소들을 참조하는 통일된 방법을 수행하는 역할을 한다. 포인터는 연관된 자료형을 가진다. (포괄적인 void 타입 포인터는 묵시적 형변환 또는 명시적..

[CSAPP] 3.9 Heterogeneous Data Structures(이기종 자료구조)
학습 주제 구조체, 공용체, 포인터, 버퍼 오버플로우 정리한 내용 3.9 Heterogeneous Data Structures(이기종 자료구조) C는 서로 다른 유형의 객체를 결합해서 자료형을 만드는 두 가지 방법이 존재. ‘struct’ Keyword를 사용해서 선언하는 구조체: 여러 개의 객체를 하나의 단위로 결합 ‘union’ Keyword를 사용해서 선언하는 공용체: 한 객체를 각각의 다른 자료형으로 참조될 수 있음. 3.9.1 Structures (구조체) 서로 다른 자료형을 가진 객체를 그룹화해서 하나의 객체로 묶어주는 자료형을 만든다. 구조체의 요소들은 각 이름에 의해 참조된다. 구조체의 요소들은 연속적인 메모리 영역에 저장되고 구조체의 포인터가 첫 번째 바이트의 주소라는 점에서 배열과 유사..

[운동 기록] 2023-01-24(하체,어깨,팔)
자세 교정 및 다이어트 기간(2월 말까지) - 구력 2년~3년 - 중량 낮춰서 자세 교정 중 - 2분할 진행 중 2023-01-17 운동 기록(1시간 30분) 하체 - 핵 스쿼트 105kg x 20reps 2 set ,130kg x 15reps x 2set, 160kg x 10reps x 2set - 레그 익스텐션(한 발씩) 35kg x 10reps x 2set, 40kg x 10reps x 2set, 45kg x 10reps x 2set - 시티드 레그 컬 40kg x 10reps x 2set, 45kg x 10reps x 2set, 50kg x 8reps x 2set 어깨 - 밀리터리 프레스 45kg x 10reps x 2set, 50kg x 10reps x 2set, 55kg x 8reps x 2s..

[운동 기록] 2023-01-23(가슴,등,팔)
자세 교정 및 다이어트 기간(2월 말까지) - 구력 2년~3년 - 중량 낮춰서 자세 교정 중 - 천천히 자극에 집중하며 수행 - 2분할 진행 중 2023-01-17 운동 기록(1시간 20분) 가슴 - 딥스10reps x 6set - 인클라인 벤치프레스55kg x 10reps x 6set - 버터플라이 25kg x 15reps x 6set 등 - 풀업 10reps x 6set - 티바로우 35kg x 10reps x 6set - 암풀다운 40kg x 10reps x 6set 팔 - 바벨 컬 30kg x 10reps x 6set - 케이블 푸시 다운(스트레이트 바) 40kg x 10reps x 6set 복근 - 크런치 30reps x 3set - 레그레이즈 20reps x 3set

[CSAPP] 3.8 Array allocation and access(배열의 할당과 접근)
3.8 Array allocation and access(배열의 할당과 접근) C언어에서 배열은 숫자 데이터를 더 큰 데이터 유형으로 확장하는 한가지 방법이다. C에서 배열은 간단히 구현해서 machine code로 번역이 간단하다. C의 특징은 배열 내 element에 대한 포인터 만들고 그 포인터로 계산할 수 있다는 것이다. 이것은 machine code에서 주소 계산으로 번역할 수 있다. 3.8.1 basic principles(기본 원리) 배열 선언하는 방법은 아래와 같다. 데이터형 이름[N]; (N=element 개수) 이 선언에는 두가지 효과가 있다. (데이터 형의 크기 = L * N) 바이트의 연속적인 메모리를 할당한다. 이름은 배열의 시작을 가리키는 포인터로 사용될 수 있다. 배열의 시작 ..