C언어 예제 실행결과 맞히기 문제 해설

  Рет қаралды 6,111

널널한 개발자 TV

널널한 개발자 TV

Күн бұрын

많은 분들이 호응해주셨네요. 감사드립니다. ^^
이 문제 그리 만만치 않습니다. 정확한 해설을 위해 알고 있어야 하는 내용을 정리하면 이렇습니다.
[핵심원리]
1. Stack frame 지정원리
2. Stack Smashing Protector + 카나리아
3. 컴파일러 최적화 (변수 의존성 분석 포함)
[기초이론]
4. ASCII 코드
5. 자료형에 대한 정의
열공하세요~~~! ^^

Пікірлер: 53
@imkim1893
@imkim1893 2 жыл бұрын
dart, java, python 등 으로 응용 프로그램 개발만 하고 있는 5년차 개발자인데,ㅎㅎㅎㅎ it 지식 홍수 속에 살고 있어서, 모르고 있던 부분에 대해 명확하게 알게 되는 것 같네요. ㅎㅎ 핵심적이고 중요한 부분들에 대해 설명해주셔서 감사합니다~!! 앞으로도 좋은 내용 많이 부탁드려요!! 책도 구입해서 읽어볼게요!!
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
좋은 평가 감사합니다. 5년차면...이제 슬슬 팀장이 될 준비 하셔야 할 것 같습니다. 음...책은 법인카드로 사시는 걸로~~~! ^^;;; 독하게 C는 올해 개정 예정이거든요. ^^
@DamplyDrum
@DamplyDrum 2 жыл бұрын
아 이런 강의 너무 재밌어요 전공자라 아는 내용 정리도 하고 모자란 지식 채워 넣으면서 강의 잘 듣고 있습니다. 정리하면서 다시 들으니 전공시간에 배웠던 내용이 유기적으로 연결되면서 아 이게 이개념이구나 싶은것도 있고 아님 오 이런 내용도 있었구나 하는 것도 있기도 하고 재밌게 잘듣고 있습니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
문제 만든 보람이 있네요. ^^ 좋은 평가 감사합니다. 그리고 알고 있던 지식이 연결되는 경험을 하셨다는 것이 강의를 한 강사 입장에서 너무나 좋은 평가입니다. ^^
@DamplyDrum
@DamplyDrum 2 жыл бұрын
@@nullnull_not_eq_null 보면서 해당 내용을 정리 중인데 질문 거리가 생겼습니다. 분명 왜 puts(&c)로 입력했는데 c에 해당하는 i am 까지만 나오는 것이 아닌 a,b에 해당하는 부분까지 출력이 되는 건가요? 이것도 카나리 비트 가 없기 때문에 그렇다고 이해하면 될까요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
@@DamplyDrum 네, 맞습니다. 그리고 중요한 것은 연속되어 있다는 것이겠죠. ^^
@ugmug6493
@ugmug6493 2 жыл бұрын
호기심에 본 문제인데 좋은 채널을 알게 됬습니다
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
응원 감사합니다. 앞으로도 계속 이런 저런 강의들을 만들어 올릴 예정입니다. 자주 들러주세요~~! ^^
@젤리껌
@젤리껌 2 жыл бұрын
와~! 얼핏 알았던 것들을 클리어하게 알게되었습니다~!! 앞으로도 많이 배우겠습니다~!!^^
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
클리어 축하드립니다~! 개념적인 것만 잘 기억해두었다가 필요할 때 꺼낼 수 있으면 됩니다. 열공하세요. ^^
@건상윤
@건상윤 2 жыл бұрын
좋은 영상 감사합니당
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
피드백 감사합니다. ^^
@갈가마구
@갈가마구 2 жыл бұрын
음 부족한거 또 추가 되었네요 넘나 많아...공부 할게 많아 아주 좋아요 감사합니다.😁
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
뭐, 끝이 없다고 보는 것이...^^;;;; 열공하세요~~~!
@유성모-c3y
@유성모-c3y Жыл бұрын
' 최호성의 C 프로그래밍' 동영상에서 자세히 설명해 주셔서 잘 알지는 못하지만 정답은 맞췄습니다. ㅋ ㅋ 동영상을 통해서 기본기를 다잡는데 많은 도움을 받고 있습니다. 카나리아~~ 알아 간다 는 건 재미있는 것 같습니다. 또 새로운 지식을 공유해 주셔서 감사합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null Жыл бұрын
강의가 도움이 됐다니 정말 다행입니다. 그리고 문제도 잘 푸셨다니 축하드립니다. ^^
@sml3592
@sml3592 2 жыл бұрын
저번 예제 영상에 개인적인 해설을 적었었는데 환경세팅에 대한건 까맣게 잊고 생각했었네요 정말 많은게 담겨있는 문제였다고 생각합니다(제 기준에서는요...) 확실히 IT 내용들은 보면 볼수록 다르게 보이네요. 영상 항상 감사합니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
수강생들에게 많은 생각을 끌어낼 목적으로 만든 문제였습니다. 어쩌면 제가 생각하지 못한 부분에 대한 답도 있을 것이고요. 정답도 중요하겠지만 답을 찾기 위해 다양한 내용을 찾아본다면...성공이죠. ^^;;;
@lico-ne5tz
@lico-ne5tz 2 жыл бұрын
와 작년에 c배우면서 포인터 공부중에 메모리를 보니 중간에 저 공간은 대체 왜있는걸까 했는데 저게 카나리 였군요! 정말 감사합니다 드디어 뭔지 알았네요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
이렇게 실력이 조금 올라가는 것이지요. 피드백 감사합니다. ^^
@KC-07
@KC-07 2 жыл бұрын
아직 초보라서 이런 영상 감사합나다 ㅎㅎ 선댓글 후감상
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
음...해설이 주저리 주저리 깁니다. 끊기도 그래서 그냥 올리니까 넘겨사면서 자신에게 필요한 부분만 잘라 보시기 바랍니다. 열공하세요~~~! ^^
@떠혀비
@떠혀비 2 жыл бұрын
메모리를 어떻게 사용하는지 몰랐는데 정말 재밌네요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
재미있게 보셨다니...영상 만든 보람이 있네요. 좋은 평가 감사합니다. ^^
@user-yj8by5lo2r
@user-yj8by5lo2r 2 жыл бұрын
명강의다
@delta4489
@delta4489 2 жыл бұрын
강의 잘 보고 있습니다! canary 뜻은 처음알았네요 ㅎㅎ
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
그게 참...카나리아에게 미안하지요. -_-;;;; 열공하세요~~~! ^^
@손용준-d9h
@손용준-d9h 2 жыл бұрын
교수님 리버싱 입문 강의 최신판도 교재나 강의로 나오면 당장 겟하겠습니다.^^
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
에구구구....저 교수 아닙니다. ^^;;;;; 음...어쨌든 리버싱 강의도 계획해보겠습니다. 깊이는 어려워도 간단한 것은 올릴 수 있을 것 같습니다. 감사합니다.
@1Q81725
@1Q81725 2 жыл бұрын
아… 왜이렇게 공부할게 많은거야 ㅠㅠ 이러다 100세까지 공부해야할거 같아요
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
네, 많습니다. 따라서 늙어 죽는 그날 까지 알츠하이머 걱정은 안 해도 된다는 장점이 있습니다. ^^;; (걸릴 여유가 없음!)
@xxxyyyzzz612
@xxxyyyzzz612 2 жыл бұрын
C는? 숫자가 스트링으로 나올수도 있구나! C언어는 대단하네요! 선생님도 대단하시고요! 언젠가 C 공부할때, 포인터 공부할때... 이 동영상 몇번 더 봐야 할듯...
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
내용을 보셨다면 아시겠지만 간단하지는 않습니다. 몇몇 이론을 복합적으로 알아야 풀 수 있는 문제죠. 피드백 감사합니다. ^^
@xxxyyyzzz612
@xxxyyyzzz612 2 жыл бұрын
@@nullnull_not_eq_null 네! 어렵더라고요! 나중에 이 동영상 내용 집중탐구해 볼려고요! 엄청난 공부가 될것 같은 느낌!
@self-coding-h8x
@self-coding-h8x 2 жыл бұрын
와 30분 답영상 감사히보겠습니다
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
이게 다 설명한 것이 아니라는 점은 함정! 열공하세요~~~! ^^;;;;
@hrtl5854
@hrtl5854 11 ай бұрын
순간적으로 저거 문자열로 나오는건 확실한데 어떤 문자열일지... 궁금해서 16진수 전환하고 아스키 코드 보고있었는데.... 맞았네요 ㅋㅋㅋ
@nullnull_not_eq_null
@nullnull_not_eq_null 11 ай бұрын
와우~~! 대단하시네요. 바로 맞추셨군요! 확실히 초보는 아닌 걸로~~!
@jangsijin8912
@jangsijin8912 2 жыл бұрын
좋은 영상 올려주셔서 감사합니다. 혹시 이러한 문제 또는 내용들이 포함된 책을 추천해 주실 수 있으신가요?
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
이 문제는 개인적으로 만든 것입니다. 음...리버싱을 공부해보시면 도움이 될 것 같네요. 참고하시기 바랍니다.
@주정열-n4p
@주정열-n4p 2 жыл бұрын
제일 화가 날때는, 릴리즈에서 에러나고, 디버그에서는 애러 안날때.. 하나하나 로그로 찍어봐야…
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
알죠. 그 짜증나는 상황...^^;;; 나중에 해결하고 보면 포인터때문인 경우가 많아서...참조형이니 상수화니 하는 것에 자동으로 관심을 갖게 되더라고요.
@주정열-n4p
@주정열-n4p 2 жыл бұрын
공감합니다…
@hellowann1740
@hellowann1740 2 жыл бұрын
항상 감사하게 시청하고 있습니다. 저는 이 예제 puts(&c)에서 빌드 불가였습니다 ㅠㅠ const char* 매개변수에 int의 주소 값을 넣으셨는데 에러가 발생안하시네요ㅠ 설정해야 하는 옵션이 있나요? 아시는분 계시면 가르쳐주시면 감사드리겠습니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
VC 사용하셨나요??? 아니면 다른 환경일까요? 어쩌면 .c가 아니라 .cpp 파일이었을 수도 있겠습니다. CPP는 C와 달리 자료형 체크를 더 강하게 하는 편이라 컴파일 오류가 났을 수 있습니다.
@hellowann1740
@hellowann1740 2 жыл бұрын
@@nullnull_not_eq_null 답장이 늦어서 죄송합니다. VS2019 사용하고 있습니다. 역시 문제는 cpp확장자였습니다. 제가 바보같이 cpp로 했었네요 ㅠㅠ 감사합니다!! 확장자 변경 후 정상(?)적으로 빌드 가능했습니다. 한 동안 프로그래밍에 손놓고 있다가 집에 모셔둔 최호성님 책으로 다시 공부하고 있습니다. 요즘 올려주시는 강의가 너무 도움이 되고 있습니다. 계속해서 좋은 내용 부탁드리겠습니다.
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
다행히 제 예상이 맞았네요. 강의가 도움이 된다 하시니 뿌듯하고요. 좋은 평가와 피드백 감사합니다. 열공하시고 멋진 개발자 되시기 바랍니다. 건투를 빕니다! ^^
@eastino
@eastino 2 жыл бұрын
감사합니다! 저 숫자를 16진수를 바꿔야되는거였군요..
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
네, 맞습니다. 10진수는 인간의 수, 2진수는 기계의 수, 기계의 수를 인간보기 좋으라고 타협한 표현이 16진수 입니다. ^^
@맞춰봐라-z9o
@맞춰봐라-z9o 2 жыл бұрын
와 인트여서 4바이트를 먹으니 I am 4개까진 억지로 억지로 아주 억지로 이해했다 치더라도 왜 a boy가 같이 생겨버리는 걸까ㄷㄷㄷㄷ 는 영상을 보니까 b와 a때문이라고 알게됐는데 여태 배울때는 변수가 선언될때는 스택공간의 랜덤한 부분에 메모리가 할당된다고 배웠었는데 저게 배열마냥 규칙적으로 붙네요......? 알고리즘 벼락치기중인데 알고리즘 뿐만 아니라 공부할 게 참 많네요...
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
스택 메모리는 기본적으로 연속되어 붙어 있습니다. 심지어 정적 영역도 그렇게 번역되는 경우가 많습니다. 그리고 랜덤으로 잡히는 것은 스택의 시작위치 정도가 되겠습니다. 이는 ASLR 때문입니다. 참고해서 같이 알아두시면 좋겠습니다. 열공하세요~~~! ^^
@맞춰봐라-z9o
@맞춰봐라-z9o 2 жыл бұрын
@@nullnull_not_eq_null 그럼 혹시 힙영역은 진짜 랜덤하게 잡히는게 맞는건가요? 아니면 힙영역도 어느정도 규칙이 있나요????
@nullnull_not_eq_null
@nullnull_not_eq_null 2 жыл бұрын
@@맞춰봐라-z9o 네, 렌덤이긴하지요. 그러나 규칙이 없는 것도 아닙니다. 충분히 예측 가능한 측면이 있습니다. 특히 해제했던 메모리를 다시 할당할 경우가 그렇습니다.
문자를 다루는 인코딩 규칙에 대한 모든 것!
44:36
널널한 개발자 TV
Рет қаралды 29 М.
Amazing Parenting Hacks! 👶✨ #ParentingTips #LifeHacks
00:18
Snack Chat
Рет қаралды 19 МЛН
МАИНКРАФТ В РЕАЛЬНОЙ ЖИЗНИ!🌍 @Mikecrab
00:31
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 39 МЛН
Day 1-5 (2024.09.02)
21:20
코드베이직
Рет қаралды 3
Docker? 그 전에 Process
19:57
널널한 개발자 TV
Рет қаралды 30 М.
Compilers, How They Work, And Writing Them From Scratch
23:53
Adam McDaniel
Рет қаралды 181 М.
신입분들이 잘 모르는 지식!! 소켓이란 무엇일까?
10:01
개발자 나연
Рет қаралды 2,3 М.
Blocking I/O와 Non-blocking I/O
15:00
널널한 개발자 TV
Рет қаралды 21 М.
UML 이야기 첫 번째, 클래스 다이어그램
26:42
널널한 개발자 TV
Рет қаралды 14 М.
이해하면 인생이 바뀌는 TCP 송/수신 원리
32:19
널널한 개발자 TV
Рет қаралды 362 М.
Amazing Parenting Hacks! 👶✨ #ParentingTips #LifeHacks
00:18
Snack Chat
Рет қаралды 19 МЛН