본문 바로가기

C

(44)
[부스트코스]자료구조 퀴즈 1 Q> 포인터를 초기화시키지 않고 값을 저장하면 어떤 오류가 발생할 수 있을까요? A> 포인터의 성질은 랜덤적이 때문에 명시적으로 설정하지 않으면 값이 정의되지 않습니다. 초기화하지 않은 포인터는 향후 시스템 충돌을 일으킬 가능성이 농후합니다. 또한, 액세스 권한이 없는 메모리를 가리킬 수 있으며, 이 경우 분할 오류가 발생하고 프로그램이 중단될 수 있습니다. 실제 데이터를 가리키고 있을 수 있으며, 무엇을 가리키는지 모르면 데이터에 예측할 수 없는(그리고 디버깅하기 매우 어려운) 변경을 야기할 수 있습니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]메모리 퀴즈 10 Q> 1. 아래 코드를 실행하면 어떤 결과가 출력될까요? 0xFF 0x20 20 FF 2. 아래와 같이 변수 n과 p을 생성했습니다. 변수 n의 메모리 주소를 출력하는 올바른 코드는 다음 중 무엇인가요? printf("%p\n", *n); printf("%p\n", p); printf("%p\n", n); printf("%p\n", &p); 3. CS50 라이브러리의 string 자료형을 사용해 변수 s를 생성했습니다. 아래와 동일한 의미를 지니는 코드는 무엇인가요? string *s = &”CS50” string &s = “CS50” char &s = “CS50” char *s = “CS50” 4. 아래와 같이 변수 s를 생성했을때, 문자 ‘W’를 출력하는 코드는 무엇인가요? printf("%c\n",..
[부스트코스]메모리 퀴즈 9 Q> JPEG 외에 다른 파일 형식도 그 형식임을 알려주는 약속이 있을까요? A> File Magic Number은 파일의 형식을 고유하게 식별하는 파일의 첫 번째 비트입니다. 이렇게 하면 파일 형식을 식별하기 위해 복잡한 파일 구조를 검색할 필요가 없으므로 프로그래밍이 쉬워집니다 File Type Typical Hex digits Ascii digits Bitmap format .bmp 42 4d BM FITS format .fits 53 49 4d 50 4c 45 SIMPLE GIF format .gif 47 49 46 38 GIF8 Graphics Kernel System .gks 47 4b 53 4d GKSM IRIS rgb format .rgb 01 da .. ITC (CMU WM) format..
[부스트코스]메모리 퀴즈 8 Q> get_long, get_float, get_char도 비슷한 방식으로 직접 구현할 수 있을까요? A> #include #include #include int main(void) { // Open File FILE *file = fopen("ex6.txt", "a"); // Get strings from user long id = get_long("Student ID: "); char grades = get_char("Grades(A ~ D): "); float avg = get_float("Average: "); // Print (write) strings to file fprintf(file, "ID : %li / Grades: %c / Average: : %.1f\n", id, grades, ..
[부스트코스]메모리 퀴즈 7 Q> 메모리 영역을 다양하게 나누는 이유는 무엇일까요? A> 명령과 데이터 메모리가 구조적으로 구별되고 복잡하지 않을 수 있습니다. CPU 내부와 외부의 서로 다른 명령과 회로를 사용하여 읽고 쓸 수 있으며 신뢰성/보안성이 상승합니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]메모리 퀴즈 6 Q> 제한된 메모리를 가지고 프로그래밍을 할 때 메모리를 해제하지 않으면 어떤 문제가 발생할 수 있을까요? A> 메모리를 할당 하였지만 해제하지 않았을 경우 프로그램이 메모리를 소모하여 작동 메모리가 부족하여 다른 응용 프로그램이 조기 종료되는 문제가 있을 수 있습니다. 또한 시스템의 작동이 멈출 수 있는 치명적인 문제가 있습니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]메모리 퀴즈 5 Q> 배운 바와 같이 메모리 할당을 통해 문자열을 복사하지 않고, 단순히 문자열의 주소만 복사했을 때는 어떤 문제가 생길까요? A> 메모리를 할당하는 데 걸리는 시간이 매우 가변적이기 때문에, 할당 시간을 예측할 수 없고, 메모리가 단편화 되어서 할당 실패 문제가 나타날 수 있습니다. https://www.boostcourse.org/cs112 모두를 위한 컴퓨터 과학 (CS50 2019) 부스트코스 무료 강의 www.boostcourse.org
[부스트코스]메모리 퀴즈 4 Q> 문자열을 비교하는 코드는 어떻게 작성해야 할까요? A> strncmp()는 두 문자열의 처음 n자를 함께 비교합니다. 어떤 문자열이 더 긴지 표시하기 위해 if ~ else if ~ else 문을 사용합니다. 문자열 길이가 같으면 같다는 결과가 반환되고, str1이 더 크면 양수, str2가 더 크면 음수가 반환되는 것을 이용하여 각 결과를 작성하여 반환 해줍니다. #include #include #include int main (void) { char *str1 = get_string("A: "); char *str2 = get_string("B: "); int ret; ret = strncmp(str1, str2, 6); if(ret > 0) { printf("str1 is longer\n");..