※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. struct member alignment를 한글로 직역하면 구조체 멤버 정렬 정도가 된다. 이 정렬은 프로세서의 성능저하를 방지하기 위함이며, 구조체 멤버를 사용할 시 메모리상의 특정 배수 값에 위치한 메모리에 둠으로써 효율적으로 메모리를 읽겠다는 소리인데, 대신에 구조체 내에서 변수선언 순서에 따라 같은 자료형의 구조체라도 전체 크기가 달라질 수도 있단 소리다. 다음 코드를 보자 struct member { int a; char b; int c; double d; } 구조체 멤버 정렬에 의하면 가장 크기가 큰 자료형의 배수로써 메모리 크기가 구분된다. 이를 실행시키면 가 된다. 좀 더 가독성을 높이..
※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.○ realloc realloc 함수는 기존에 malloc이나 cmalloc으로 동적 할당된 메모리 크기를 변경시켜주는 함수다. arr이라는 포인터에 동적 할당으로 메모리 공간을 할당해 주고 realloc으로 메모리 크기를 조정할 때 만약 arr이 있는 메모리 위치에 충분한 공간이 있다면 realloc함수는 추가로 메모리 공간을 할당해준다. 하지만 arr이 있는 메모리 위치에 충분한 공간이 없다면 메모리의 다른 공간 기존 크기의 공간을 할당 + 기존에 있던 데이터를 복사한 후 추가로 메모리를 할당해준다. #include//1. realloc 예제 #include void main() { int i, n,..
※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. strlen : 공백을 포함한 총 문자열의 길이를 구한다. 인자로는 (길이를 구할 문자열 혹은 변수)가 들어가며, string.h에 정의되어 있다.strcmp : 문자열 비교 시 길이가 아닌 각각의 아스키 코드 값의 크기에 따라 A문자열 > B문자열 보다 크면 0보다 큰 값을 리턴, A문자열 > B문자열 과 같으면 0을 리턴, A문자열 > B문자열 보다 작으면 0보다 작은 값을 리턴 한다. string.h에 정의되어 있다.strcat : 특정 문자열에 다른 문자열을 이어 붙인다. 인자로는 (대상 변수, 붙일 문자열 혹은 변수)이며 string.h에 정의되어 있다.strcpy : 문자열을 복사하는 함수이..