묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
스택 영역과 힙 영역의 데이터 인출 순서
안녕하세요~!프로세스 개요 관련 질문에 대한 답변을 보다 궁금한 점이 있어 질문드립니다.아래 링크는 '메모리의 구조 (코드, 데이터, 힙, 스택 영역)' 에 대한 글인데 답변에 달려있었던 링크입니다.https://all-young.tistory.com/17힙과 스택에 대한 내용 중 데이터 인출 순서를 다음과 같이 정리가 되어 있었습니다.힙: 선입선출스택: 후입선출그런데 해당 글의 댓글을 보니 '힙영역은 사용자가 메모리를 직접 할당하고 해제할 수 있다는 점에서 이미 논리적으로 "순서가 정해졌다(FIFO)" 라는 말이 과연 성립할 수 있을까라는 의문이 생기기도 합니다.'고 되어 있다고 하고 영어로 검색하면 완전이중트리에 대한 설명이 나온다고 합니다.어떤 말이 맞는 건지 알 수 있을까요?
-
해결됨독하게 시작하는 C 프로그래밍
선생님 디스어셈블리를 활용해서 코드를 보다보니~~
선생님 디스어셈블리를 활용해서 코드를 보다보니 제 소스코드 위에서도 작업을 하는것 같고 아래쪽에서도 작업이 이루어 지더라구요 위쪽에서는 add byte ptr [rax],al 아래쪽에서는 뭐가 쫌 일어나다가 00007FF7A71E1001 int 3 요런 명령이 나오더라구요~~ 요게 보니까 제소스코드 위아래로 c컴파일러?가 다른 작업을 하고 있는건가요?? 잘 몰라서 질문을 제대로 한건지도 모르겠네요 ㅠㅠ
-
해결됨독하게 시작하는 C 프로그래밍
32비트 시스템에서의 메모리 관리
안녕하세요. 32비트 시스템은 1바이트 메모리에 부여하는 주소가 32비트 상수라는 얘기가 이해가 안 가서 질문 드립니다.1바이트 하나 자체를 32비트의 주소로 관리한다는 것인지전체 메모리(ex. 4GB)에서 1바이트를 기준으로 32비트의 주소를 부여한다는 것인지 이 2개 중에 어떤 걸 의미하는지 헷갈립니다.알려주시면 감사하겠습니다. 항상 좋은 강의 감사드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
C언어와 파이썬
안녕하세요 선생님다름이 아니라 현재는 프로그래밍 분야와 다른 분야에서 일하고 있지만 차차 준비를 해서 언젠가는 해당 분야로 직무를 변경하여 일하고 싶어 선생님의 강의를 수강하고 있는 직장인입니다.제가 처음 C언어를 배운 것은 2015년도 였고 그때 포인터를 마주하고 C언어 및 프로그래밍의 벽을 느껴 공부를 포기했었습니다. 그 이후로도 몇번이고 공부하고자 마음을 먹었지만 코드를 따라치고 기본적인 문법을 익혀 예제를 푸는 것 만으로는 실질적으로 코드 자체가 이해가 가지 않아서 중간에 학습을 포기하였습니다.최근에는 선생님의 C언어 강의를 들으면서 차근차근 공부를 하고 있습니다. 강의 내용이 어렵긴하지만 그래도 기초적인 것부터 설명해주셔서 너무 감사하게 수강 중입니다. 선생님이 말씀하신대로 프로그래밍언어 공부는 단순히 문법을 익히는 것 뿐만아니라 컴퓨터 구조와 메모리를 어떻게 쓰는 지 아는 것이 중요하고 이런 학습 방법이 도움이 더 많이 되는 것 같습니다. 아직도 잘은 모르지만 뭔가 하나하나 개념이 잡힌다고나 할까요? 그런데 최근 고민이 있습니다. 제 지인들은 다들 4년제 컴퓨터공학과를 나와서 일을 하고 있습니다. 제가 지인들에게 학습 방법, 로드맵에 대해서 질문을 하면 다들 C언어를 공부하는 것 보다는 Python을 공부하는 것이 더 좋다고 합니다. 실질적으로 c언어를 써서 개발하는 부서는 많지도 있고 요샌 대부분 Python을 사용하여 업무를 한다고 하더라구요. 제가 미리 말씀을 안드렸는데 현재 저는 반도체 기업에서 일을 하고 있고 제 지인들도 반도체 기업의 SW직무이고 저 또한 프로그래밍 능력을 쌓아 C++로 코딩테스크를 본 뒤에 사내 직무 이동 프로그램을 통해 SW직군으로 이동할 계획입니다.또한 지인들이 Python 은 인터프리터 언어(메모리 관리를 안해도 되는 언어)라서 요새는 C++까지 넘어가지 않아도 된다고들 하더라구요. 그래서 C는 어려우니 굳이 힘빼지말라는 말도 들었습니다. 또한 현업에서 일하시는 분들도 운영체제, 자료구조,네트워크 같은 과목을 두루두루 깊게 공부한 사람들이 적다고도 들었습니다.저는 현재 C언어를 공부하면서 어렵지만 배우는 것도 많고 뭔가 뜬구름 잡던게 하나하나 알아가는 느낌이라서 좋은데 제 지인들이 코딩테스트도 Python으로 봐라 C는 어렵고 어차피 현업가면 Python을 쓴다고 해서 제가 올바른 방향으로 학습을 하고 있는것인지 의문이듭니다. 제가 코딩 테스트를 C++로 보려는 이유는 인터프리터 언어인 Python보다 컴파일러 언어인 C++을 공부해야지(C++이 조금 더 어렵긴하지만) 컴퓨터가 메모리를 어떻게 쓰는 지 알게 되고 나추후에 더 도움이 된다고 생각해서 C++로 준비하고 있는데 제가 삽질을 하고 있는 건 아닌지 선생님의 의견이 궁금합니다.또한 제가 만약 C언어를 공부후에 선생님께서 자료구조, 운영체제, 네트워크는 필수로 공부하라고 들었던 것 같은데 맞을까요? 그렇다면 자료구조, 운영체제, 네트워크 중 공부 순서가 있을까요?위의 3가지 과목 이외에 추가적으로 공부해야할 과목과 공부순서가 있을까요? 이론공부의 커리큘럼이 공부합니다.그리고 현재 선생님의 유튜브 채널 멤버쉽도 구독 중인데 시간되시면 이 내용에 대한 선생님의 생각을 한번 유튜브에서 말씀해주시면 저처럼 갈피를 못잡고 있는 사람들에게 많은 도움이 될 것 같습니다. (저에 대한 직접적인 언급은 뺴고요) 감사합니다
-
해결됨독하게 시작하는 C 프로그래밍
안녕하세요! C/C++/C# 윈도우 개발 희망하는 컴공과 2학년 입니다.
제 계획은 선생님의CS 강의 [컴퓨터구조, 운영체제, 네트워크]C/C++ 강의윈도우 시스템 프로그래밍 강의 를 공부하고,그 이후에 C# 과 .net 프레임워크를 공부할 계획입니다.이렇게 계획을 세운 이유는 1학년 때 자바 수업을 들으면서 C언어를 독학했는데, OS나 컴퓨터 원리에 대한 내용의 중요성을 너무 절실하게 깨달았습니다. 성격상 자바를 배우면서도클래스가 힙메모리 영역에 생성되고 이것은 C언어의 구조체 안에 또 다른 포인터를 넣어 이중포인터로 구현이 가능하겠구나 이런 생각이 들면서 C가 더욱 재밌고 이쪽 계열로 가고싶다고 생각 했습니다. 경쟁력도 더욱 있을거라고 생각했구요 ! 서론이 길었습니다.요약하자면 제 계획은C#을 이용한 윈도우 프로그램 개발을 하고싶지만,이에 대한 기반으로 C/C++ 윈도우 시스템 및 컴퓨터 구조에 대한 이해를 기반으로 공부하고 싶다. 제가 생각한 공부 계획이 배보다 배꼽이 더 큰건 아닌지 궁금해서 질문 드렸습니다 감사합니다! 아직 제가 깊게 학습을 하지 않은상태라 드린 말씀이지만, c#c++ 계열의 백엔드 개발or 윈도우 개발쪽으로 가려면 제가 생각한 것이 맞는지 궁금합니다 !
-
해결됨독하게 시작하는 C 프로그래밍
정수형태 변수 메모리상 확인방법 및 단순 대입 관련 문의
문의사항 x = 0; 실행시 x에 해당하는 주소에 데이터 저장이 확인되지 않습니다. 일전 문자열 저장시 메모리 상에서 확인 가능했음 (ex) char szName[32] ={ 0 };) x = ninput 수행시 독하게 시작하는 프로그래밍 언어 강사님 저서를 보고 확인했을때 주소에 값이 변경되는 것으로 판단되는데 맞을까요?다른 언어에서 복사의 의미는 값의 주소를 공유한다고 배웠던것 같아 문의드립니다. 감사합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
안녕하세요. 주소지정방식에 대해 질문합니다.
직접 주소 지정 방식보다 간접 주소 지정 방식이 표현할 수 있는 유효 주소의 범위가 더 넓어졌다고 언급(3-2강의 19분 언저리 )해주셨는데요. 유효 주소의 주소나 유효 주소나 둘 다 주소를 표현하기 때문에 표현 범위는 같은 것 아닌가요? 연산 코드의 범위가 달라지지 않았는데 표현할 수 있는 범위가 넓어졌다는 것이 이해가 가지 않습니다!
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
파이프라이닝 기법 슈퍼스칼라
명령어 파이프라인 기법의 원리는코어에 쓰레드가 여러개 있어서 가능한건가요?명령어 1,2,3,4가 동시에 겹쳐서 실행되려면1코어에 쓰레드가 4개여야하는거죠?만약 위 설명이 맞다고 하면결국 시피유의 하드웨어 쓰레드를 많이 만들어야 한다는건데결국 시피유 성능을 높이자는 얘기인거죠?슈퍼스칼라 기법슈퍼스칼라는 코어가 단일이 아니라 멀티이니까 여러개의 파이프라인을 이용가능한거죠?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
데이터베이스 강의
민철님혹시 네트워크말고데이터베이스 강의도 나오나요?ㅎㅎ..네트워크는 곧 나온다고하셔서 엄청기대중인데 4월중으로는 나올까요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
pdf, ppt
현재 이 강의 ppt나 pdf 자료는 없을까요?ㅠㅠ
-
해결됨독하게 시작하는 C 프로그래밍
섹션 13 배열의 기본 문법
안녕하세요 강사님 섹션 13 배열의 기본 문법 관련해서 질문이 있습니다강의에서 "Hello"이라는 문자의 배열의 요소를 6개라고 하셨는데, 이것은 Hello라는 문자는 알파벳 5개지만 문자의 배열(문자열)의 끝에는 항상 null이 들어가서 6개라고 말씀하신걸까요?그렇다면 모든 문자열의 요소 개수 = 문자열의 알파벳 개수 +1(null)라고 생각하면 될까요? 또한 문자열 상수는 이름이 없는 문자의 배열이라고 하셨는데 이름이 없는 문자의 배열이라는 것이 이해가 잘 가지 않습니다. 예를 들어 "Hello"는 문자열이고 변하지 않는 상수가 맞으니깐 문자열 상수라는 것은 알겠는데 이름이 없다는게 무슨 의미일까요? 감사합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
대기상태
프로세스가 입출력 장치를 사용하는 경우입출력 작업이 끝날때까지 기다려야 한다고 하셨는데,예를들어 워드 프로그램을 실행중에 프린트를 출력버튼을 누르고바로 워드 프로로그램을 이어서 실행할수있지 않나요?그런데 왜 대기상태로 접어든다는걸까요?ㅠ프린트물 완료되었다는 입출력 알림이 올때까지 대기 상태로 간다는게 이해가 안갑니다ㅠㅜ 아니면 입출력에 대한 인터럽트가 발생해 인터럽트 서비스 루틴을 완료할때까지 기존 수행하던 작업을 대기 상태로 둔다는걸까요? 그렇게 본다면..프린트 버튼을 누르고 보통 1초후(아직 출력물은 나오지않았지만)에 바로 워드프로그램 사용이 가능한데, 사용가능할때 이미 서비스 루틴은 완료되어 알림을 받은상태일까요?
-
해결됨독하게 시작하는 C 프로그래밍
왜 메인함수는 항상 int인가요>
callee함수들은 리턴값에따라 int , char쓰기도하는데 궁금합ㄴ디ㅏ
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
네트워크 책
혼자 배우는 네트워크강의는 안나오나요ㅠㅠ책말고 강의도 해주세요 ㅠㅠ
-
해결됨독하게 시작하는 C 프로그래밍
IO버퍼메모리 추적하기 강의 관련 질문이 있습니다.
항상 좋은 강의 감사드립니다.IO버퍼 강의 듣다가 질문 드립니다. IOBUF 구조체의 구조를 확인하는 방법이 강의에는 정확히 나와 있지는 않던데 인터넷 검색 이외 다른 방법이 있을까요? 비주얼스튜디오로 정의를 따라가는 방법으로는 c언어 표준라이브러리 나 그 외 API들의 내용을 전부 확인하기 힘든 경우가 많아서 궁금합니다. 실제 _iobuf 구조체는 placeholder라는 포인터변수 하나만 있는데 이 주소값에 해당하는 정보가 이전에 정의되어 있는 구조체 내용과 연결되어 있는 것인가요? 하나의 포인터만 표시되어 있는 구조체가 어떻게 작동하는지 궁금합니다. 강의내 코드에서는 IOBUF_TEST라는 별도의 구조체를 정의하여 사용하신 것 같은데 이 구조체의 포인터로 인스턴스화 된 개별 멤버변수들이 어떻게 실제 IO버퍼의 정보를 표현하게 되는 것인지.. 이 부분이 이해가 잘 되지 않습니다. 파일구조체의 정보를 참조하는 별도의 개별정의 구조체로 그 정보만 확인한 것이라고 이해하면 되나요? 질문이 너무 두서 없어 송구합니다. 항상 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
동적 라이브러리에 대한 의문
동적 라이브러리는 OS가 링크를 런타임에 해주는 것으로 배웠는데 그럼 동적 라이브러리는 process 단위로 봐도 되는 것인가요? 동적 라이브러리는 실행의 개념이 있는 것인지 의문을 가지게 됩니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
강의안 질문
혹시 강의에서 사용하시는 ppt 자료는 받아볼 수 없을까요..?강의 잘보고있습니다!
-
해결됨독하게 시작하는 C 프로그래밍
switch-case 예제중
scanf_s("%d%c%d", &x,&cOperator,1,&y);에서 1은 무엇을 뜻하나요?
-
해결됨독하게 시작하는 C 프로그래밍
변수선언할때
그냥 누적변수뿐만 아니라 모든 변수를 0으로 초기화로 시작해도 될까요?
-
해결됨독하게 시작하는 C 프로그래밍
lookup테이블과 역호출 결합부분 질문
int (*functionArray[3])(int) = {DoMove, DoJump, DoAttack};이런 형식으로 했는대 인자인 int 가 강의에선 딱히 의미가 없어보이는대 의미가 있는 사용법이 있을까요??