복습을 하던 중, 함수 파트가 매우 취약함을 느꼈고, 개념을 다시 정리 후 옛날에 풀어봤던 연습문제를 다시 한 번 풀어보는 계기가 되었다. 9-1-문제1 (p.221) > 세 개의 정수를 인자로 전달받아서 그 중 가장 큰 수를 반환하는 함수와 가장 작은 수를 반환하는
다짜고짜 C언어를 하기 시작했다. (이유?: 추후 공개) 포인터 이전까지는 회독을 많이 한 책이어서 이론 정리 없이 바로 도전 문제를 풀어본다.괜찮은 변수명을 정하기 위해 인터넷 서칭 후 정했다. 근데 좀 긴 것 같다. 줄여보겠다.컴파일러는 왜 온라인을 사용했냐면, 설
최댓값과 총 합을 구하는 방법은 구현했지만, 최솟값을 구현하지 못하였다.실행 결과, 계속 최솟값이 0이 나왔다. 이유min 값을 0으로 주면, arr 배열의 어떠한 값과도 같거나 작았을 것이다.아래 코드처럼, 총 합과 최솟값, 최댓값을 한 번에 구하는 for문을 이용해
위 코드가 실행되지 않았다. 아주 약간의 답지를 참고하여 구현했지만, scanf_s의 문제로 해결이 되지 않았음을 발견했다.https://blog.naver.com/wiiwiwi/222843836892버퍼 오버플로우 : 버퍼의 한계가 있어도 일단 처리가 급하니
포인터 int형 변수 ptr2는 ptr1 변수가 가지고 있는 num의 주소값을 가지기 때문에, 똑같이 변수 num을 가리킨다.최종적으로 변수 num값을 출력하면 12가 출력된다.해설지에는 나처럼 아예 코드로 ptr1과 ptr2가 가리키는 대상을 직접적으로 바꾸지 않았고
후위증가를 하므로, \*(ptr++) += 2; 와 같이 한 줄로 대체가능하다.ptr (arr0)의 값에 2가 더해진 후,ptr++ 후위증가에 의해 sizeof(int)=4만큼의 주소값이 더해져서ptr은 arr1를 나타낸다.for문에 의해 5번 반복한다. 결국 결과는
제곱을 구하는 프로그램이다.두 가지의 문제를 제시했다. 첫번째는 Call-by-value 형태의 프로그램, 두번째는 Call-by-reference 형태의 프로그램을 나타내어야 한다.Swap 함수 인자가 세개라고 temp를 두개 만들면 될 줄 알았는데 2개를 만들어도
위 함수의 매개변수 선언에서 매개변수 arr을 대상으로 const 선언을 한 이유가 무엇이겠는가?arr 배열의 요소가 변경되지 않도록 보호한다. (정답)위 예제에서 한 가지 지적할만한 사항이 있다. 무엇인가?ShowData 함수에서 \*rptr=20;이 될 수 없다.
정상적으로 실행되었다.하지만 책에서처럼 마지막 결과에서 콤마를 붙히지 않도록 하는게 어려웠다.ex) 홀수 출력 : 1, 3, 5, 7, 9이런식으로 여기서 마지막 9에 콤마를 뗄 수 있는 방법이 난제였다.한 블로그를 참조하고, 익혔음. 내일 다시 풀기 ^^
2차원 배열을 1차원 배열로 구현하여 2차원 배열이 유용한 이유를 더 깊이 이해하기 위함
2차원 배열 하나만 선언하여 그 안에서 돌리는 방식을 처음에는 택했지만, 내 지식 선에서는 불가능하였다.예를 들어, arr0인 1을 arr0에 배치시켜야 하는데 그렇게 된다면 기존의 arr0에 있던 사라지게 된다. 이것을 임시값으로 하나만 두기에는 1회전당 4번의 덮어
21-1-1 아스키코드를 구성하는 값의 범위는 0이상 127이하이다. 알파벳 대문자와 소문자간의 값의 차는 32이다 (A는 65 / a는 97) 이 특성을 이용하여 문제에 접근해보았다. if문에 문제가 있는가? A(65)을 입력했을때는 a(97)가 입력되었지만, a(97)을 입력했을때는 A(65)가 입력되었지 않았다. 왜 문제가 되는지 몰라서 putcha...
한 명만의 정보를 입력할 수 있다. 구조체에서도 배열을 선언할 수 있을까.
22-1에서는 한 명의 정보밖에 입력할 수 없었다. 그러나, 구조체 배열을 선언함으로서 지정한 명 수 만큼의 정보를 입력할 수 있었다.
두 구조체 변수의 주소 값을 대상으로 SwapPoint 함수를 호출하여 값을 스와핑했다.스왑함수를 이렇게 구조체 포인터 변수가 가리키는 값끼리 통째로 이동시켜도 된다.
위 2번의 생성한 파일에 저장된 정보 전체를 출력하였다.fgets함수의 문자열 입력이 끝났을때의 NULL 반환을 이용하였다.
int putchar(int c);인자로 전달된 문자정보를 stdout - 표준 출력 스트림으로 전송int fputc(int c, FILE \* stream);문자를 전송할 스트림을 지정할 수 있음.함수 호출 실패 시 EOF 반환int getchar(void);stdi
GetFileSize 함수를 분석해보겠다.
이 예제를 컴파일하고 실행하는 경우, 프로그램 시작부터 종료 시까지 스택의 상태변화에 대해서 설명해보겠다.일단 현재 전역변수 또는 static 지역변수는 없으니 데이터영역에는 할당되지 않는다.main 함수가 호출되어 지역변수 num1이 할당된다.func1 함수가 호출되
26-1-1 26-1-2 26-1-3
구조체 배열을 이용하여 책 3권을 저장할 수 있는 프로그램이다.도전 2는 도전1에서 구현한 프로그램의 다른 버전인데, 구조체 배열을 선언하는 것이 아닌 구조체 포인터 배열을 선언하고 구조체 변수를 동적으로 할당하는 형태로 만드는 문제였다.