inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

병행성 제어

해결됨

독하게 되새기는 C 프로그래밍

안녕하세요. 새해 복 많이 받으세요. 병행성 제어 , 원자성 등 C++에 대해 조금 더 깊게 공부하고 싶은데 강사님 강의중에 수강 어떤것을 수강 하면될까요?

  • kernel
  • secure-coding
박경희 댓글 2 좋아요 0 조회수 71

질문이 있습니다(강의와 거의 상관이 없는)

해결됨

독하게 되새기는 C 프로그래밍

게임회사를 4개월 다니다가 (너무 잦은 철야 새벽 2시 정도까지) 못 버티고 이직을 하였습니다. 현재 방산회사와 보안회사에서 연락이 와서 고민중입니다. 방산회사는MFC, WPF, 보안회사는 MFC및 보안 솔루션들을 개발하는것 같습니다. 방산회사는 집에서 30분 거리, 보안 회사는 1시간 거리 정도입니다.(자취) 고민의 취지는 보안 회사는 성장 기대치가 높아 보이고 배울게 많아 보인다는 점이고, (야근이 조금 있지만) 반면 방산회사는 워라벨은 지킬 수 있지만 개발자로써 성장을 하지 못할까? 라는 걱정이 있습니다. (연봉은 둘다 1~2백 차이이고 3천 중반입니다.) 방산과 보안에 대해서 아는 부분이 없어 널널한 개발자님의 고견을 듣고 싶습니다.

  • c
  • kernel
  • secure-coding
starkshn 댓글 2 좋아요 0 조회수 112

컴파일러 서적 질문입니다

해결됨

독하게 되새기는 C 프로그래밍

16화 강의 후반부에 컴파일러 서적 추천을 해주셨는데, 혹시 추천해 주실만한 컴파일러 책이 있으신가요? 아니면 좋은 컴파일러 책은 어떠한 것들을 자세히 다루어야 한다 라던지, 좋은 컴파일러책 고르는 기준같은게 있으시면 조언 부탁드립니다!

  • c
  • kernel
  • secure-coding
Jessie 댓글 1 좋아요 0 조회수 189

코드생성 및 최적화 질문입니다

해결됨

독하게 되새기는 C 프로그래밍

안녕하세요! 항상 잘 보고 있습니다 최적화 관련으로 궁금증이 생겨 질문을 남깁니다 제가 찾아본 관련 내용은 아래와 같습니다 중간 코드 생성 다음으로 이루어지는 중간 코드 최적화 기계어 생성 다음으로 이루어지는 기계어 최적화( ? ) 중간 코드 최적화의 다양한 기법 데드 코드 제거( Dead Code Elimination ) 상수 폴딩( Constant Folding ) 공통 하위표현식 제거( Common Subexpression Elimination ) 질문 1 영상 5:30의 어셈블리어를 보면 a = 3 + 4 표현식이 결과값인 7로 대체 되어 있습니다 이것은 중간 코드 최적화 기법중 상수 폴딩에 해당하는거 같습니다 그렇다면면 여기서 이루어진 최적화는 중간 코드 최적화가 맞을까요? 감사합니다 !

  • c
  • kernel
  • secure-coding
붉은외계인 댓글 1 좋아요 0 조회수 197

Hex Editor를 이용한 다국어 번역 관련 질문입니다

해결됨

독하게 되새기는 C 프로그래밍

"문자(배)열 상수는 어디에 저장되는가?" 강의에서 마지막에 Hex Editor로 exe 파일의 static 영역에 있는 문자열 리터럴을 강제로 바꿔서 다국어 지원을 하게 했다는 이야기를 하셨는데요, 그 부분과 관련해 궁금한 점이 생겼습니다. 응용프로그램에서 static 영역의 메모리를 수정할 수는 있겠지만, 각 크기가 정해져있지 않나요? 예를 들어서 "Hello"를 "안녕하세요"로 변경하기에는 5 byte를 10 byte로 변경해야 한다는 점에서 의문이 들었습니다. 이 경우 문자열 리터럴의 메모리 주소가 밀려나거나, 다른 문자열을 침범하거나 하는 문제가 발생할 수 있지 않을까요? 예를 들어 원래 캐릭터 A가 "Hello"라고 출력 후, B 캐릭터가 "Oh, Hi!" 라고 해야 할 때 static 영역에 있는 메모리가 가지는 값은 다음과 같을거라 생각합니다. H e l l o \0 O h , H i ! \ 0 이 부분을 강제로 에디터로 고쳐서 안 녕 하 세 요 \0 응 , 안 녕 ! \ 0 라고 변경했다고 가정하겠습니다. 원래 프로그램에서는 기존에는 5byte의 Hello를 출력할겁니다. 그러나 "안녕하세요"는 10byte이므로 "안녕" 까지만 출력이 될 수 있을거라 생각합니다. 또는 A가 "안녕"까지 출력 후 계속 다음 메모리 주소를 찾아서 출력해 B가 "하세요" 라고 하는 문제가 있을 수도 있을 것 같습니다. 그러나 그럼에도 다국어 지원이 가능했다고 하는데, 그렇다면 이와 같은 바이트 차이 문제 등을 어떻게 해결했는지 궁금합니다. Null Character \0 을 만날때까지 출력하기 때문에 문제가 없었나 싶기도 하네요.

  • c
  • kernel
  • secure-coding
Rein 댓글 2 좋아요 0 조회수 242

큐의 배열을 넘겨도 정상작동합니다

해결됨

독하게 되새기는 C 프로그래밍

예제를 거의 똑같이 구현했는데 환영큐로 구현을 한게 아닌 배열형태의 큐로 사이즈를 100을 줬는데 100개를 넘게 입력해도 정상작동을 합니다 왜 이런건가요?

  • c
  • kernel
  • secure-coding
kamdabin3 댓글 2 좋아요 0 조회수 176

캐너리비트에 관하여 질문

해결됨

독하게 되새기는 C 프로그래밍

메모리의 주소값이 int자료형이면 4씩 증가하면서 저장될것같은데 캐너리비트를 넣는다면 더 증가하게 될텐데 릴리즈에서는 적용이 안되면 릴리즈모드에서는 스택메모리주소값이 4씩 증가하게 되는건가요? 그럼 디버그모드에서는 1mb만큼의 스택 메모리를 정확히 사용한다고 가정했을때 캐너리비트가 더 차지하게 되므로 오류가 발생하는건가요? 64비트에서는 자동변수를 메모리에 저장할때 메모리값이 점점 커지는데 32비트와는 반대인건가요?

  • c
  • kernel
  • secure-coding
kamdabin3 댓글 3 좋아요 0 조회수 244

상수화된 문자열에 질문있습니다

해결됨

독하게 되새기는 C 프로그래밍

안녕하세요 강의를 잘 듣고있는 수강생입니다 강의에서 쓰신것처럼 Hello World같이 문자열을 변수에 저장하면 실행 바이너리 파일에 저장되있는데 모든 Hello World는 모두 같은 메모리값을 가지는건가요? 그럼 만약 Hello World에 !를 하나 붙일경우 새롭게 할당이 되나요?

  • c
  • kernel
  • secure-coding
kamdabin3 댓글 1 좋아요 0 조회수 190

함수 호출 매개변수 전달에 대한 질문 드립니다.

해결됨

독하게 되새기는 C 프로그래밍

함수 호출 매개변수 전달에 대한 질문 드립니다.call by reference 와 call by address 의 차이는 참조형의 경우에 실제 int a; 메모리 주소: 0x01int& ra=a; 메모리 주소:0x01int* pa=&a; 메모리 주소:0x~~ (ra와 a는 같음 하지만 포인터는 주소를 담는 변수이기 때문에 저장공간을 주소값으로 가짐)제가 이해한 것은 저 a 를 참조형과 포인터형으로 함수를 호출 했을 때실제 함수에 포인터로 받은 매개변수는 지역변수 선언하여 해당 포인터에 주소값이 들어있고,참조형으로 받은 함수에서는 매개변수가 따로 생성되지 않고, 호출자에 있던 a값의 주소와 피호출자의 int& a 의 주소값이 일치했습니다. 결과적으로 참조형은 스택공간에 변수를 따로 생성하지 않고, 호출자의 스택공간의 주소를 공유한다고 생각이 들어서 이 부분에서 차이가 있다고 생각이 들어서 제가 이해한것이 맞는지 궁금하여 질문 드렸습니다. 감사합니다.

  • c
  • kernel
  • secure-coding
Pass 댓글 1 좋아요 0 조회수 213

단항 증감 연산에 따른 다른 접근에 대한 질문있습니다.

해결됨

독하게 되새기는 C 프로그래밍

b = 3 + a++ 의 연산식을 설명하실 때, ++ 연산에 있어서 전위식과 후위식 표기 설명 중에 질문이 있습니다.일단 전위식의 경우에는 push 할 때 ++ 연산이 실행되고, 후위식의 경우에는 pop 할때 연산이 실행된다고 강의 중에 설명하셨습니다. 예를 들어 a 의 값이 2라고 가정하고 후위식으로 진행하는 과정에 대해서 생각해보았습니다. 그렇다면 push하는 과정에서는 2값이 들어갈테고 pop 하는 과정에서 a 값이 3으로 증가하긴 할텐데, 해당 내용을 토대로 결과를 확인하면 b의 값은 5가 출력됩니다.그 말은 pop을 할 때 ++ 연산이 진행됐지만 연산은 2로 진행됐다는 뜻인거고 그 이후에 ++ 연산이 일어나고 3으로 진행된 것으로 사료됩니다.일단 대충 이해는 하려면 할 수는 있겠으나 디스어셈블 창을 보면서 순서상으로 어느 부분에서 ++ 연산이 이뤄졌는지 이해가 되지 않아 질문드립니다.

  • c
  • kernel
  • secure-coding
clang 댓글 2 좋아요 0 조회수 238

함수호출 규약 종류에 따른 장단점 여부

해결됨

독하게 되새기는 C 프로그래밍

선생님, 강의 잘 듣고 있습니다. 함수호출규약 강의에서 __cdecl 및 __stdcall에 대한 비교를 해주셨는데, 2가지 키워드에 대한 활용방안 및 장단점이 존재할까요?

  • c
  • kernel
  • secure-coding
Jeongwon Kim 댓글 2 좋아요 0 조회수 263

정적라이브러리 링크 오류

해결됨

독하게 되새기는 C 프로그래밍

안녕하세요 강사님, 정적 라이브러리 생성을 위해 속성->일반->구성형식을 정적 라이브러리로 설정하였는데도 LNK2001, LNK112C 에러가 발생합니다.

  • c
  • kernel
  • secure-coding
jungdabin8 댓글 1 좋아요 0 조회수 248

const char *를 char*에 초기화할때의 컴파일 에러 처리 방식 문의

해결됨

독하게 되새기는 C 프로그래밍

문자(배)열 상수는 어디에 저장되는가? 강의에서 문의 드립니다. (06:45) 선생님 강의를 들으면서 따라치면 C2440 오류가 발생하며 다음과 같은 오류가 발생합니다. hello world는 const char* 이나 char* 자료형에 초기화하여 문제가 발생하는 것으로 이해하는데, 강의에서는 자연스럽게 디버깅이 되는 것 같더라구요 (저는 디버그로 돌리니 컴파일 에러가 발생합니다.) 혹시 디버깅을 하기 위해 추가적으로 진행되어야 하는 사항이 있을까요 ?.?

  • c
  • kernel
  • secure-coding
Jeongwon Kim 댓글 2 좋아요 0 조회수 402

pszParam 수정이 왜 Hello World print에도 영향을 미치는지 이해가 잘 안됩니다.

해결됨

독하게 되새기는 C 프로그래밍

섹션1 문자(배)열 상수는 어디에 저장되는가? 에서 4분쯤에 나오는 char* pszParam = "Hello World\n"; printf(pszParam); printf("Hello World\n"); 여기서 pszParam을 디버거 메모리에서 수정시 아래 hello world가 왜 수정되는지 잘 이해가 되지 않습니다. 기본적으로 다른 메모리 공간에 저장 되어야 될꺼라고 생각되는데 컴파일러가 알아서 최적화 했다고 봐도 될까요? printf("Hello World\n"); 여기를 글자 한개만 더 넣어도 pszParam을 수정해도 아래 print 되는 문자열이 같이 수정되지는 않았습니다. 그리고 질문하면서 궁금해진 점이 printf("Hello World\n"); 이것만 있을 때 이 hello world! 가 쓰여진 주소를 알 수 있는 방법이 있을 까요?

  • c
  • kernel
  • secure-coding
날다람쥐 댓글 2 좋아요 0 조회수 288

비선형 자료구조

해결됨

독하게 되새기는 C 프로그래밍

혹시 비선형 자료구조 강의를 만드실 생각이 있으신가요? 있으면 듣고 싶네요 ㅎㅎ

  • c
  • kernel
  • secure-coding
  • 자료구조
TMI_JUNG 댓글 1 좋아요 0 조회수 333

자료 구조 공부 후에

해결됨

독하게 되새기는 C 프로그래밍

독하게 되 세기는 C를 들어야 하나요? 아니면 자료구조 공부 전에 독하게 되 세기는 c를 들어야 하나요? 어떤 걸 먼저 들어야 더 깊이 있게 이해가 되나요? 아니면 상관 없나요?

  • c
  • kernel
  • secure-coding
차희원 댓글 1 좋아요 0 조회수 375

강의자료 관련

해결됨

독하게 되새기는 C 프로그래밍

강사님 강의자료 인쇄용으로 부탁드립니다!

  • c
  • kernel
  • secure-coding
박진수 댓글 1 좋아요 0 조회수 280

마지막에 말씀하신 부분 질문드립니다.

해결됨

독하게 되새기는 C 프로그래밍

매개변수가 레지스터보다 많아지면... 부분에서 혹시 자바도 C처럼 매개변수 처리에 레지스터를 쓰는지가 궁금한데 답변해주실 수 있다면 답변부탁드립니다!

  • c
  • kernel
  • secure-coding
ysko 댓글 1 좋아요 0 조회수 247

문자열 관련 질문 드립니다

해결됨

독하게 되새기는 C 프로그래밍

우선 예제 코드를 먼저 보여드리겠습니다. char arr[13] = "Hello World\n"; char* arrr = "Hello World\n"; printf("%p\n", &("Hello World\n")); printf("%p\n", arrr); printf("%p\n", arr); "Hello World\n" 과 arrr이라는 포인터 변수의 대상이 완전히 일치한다는 것은 이해했습니다. 그래서 4행과 5행의 출력 결과는 같다는 것을 실습으로 확인했습니다. 그런데 6행의 출력 결과는 앞의 두 경우와 다르게 나왔습니다. 질문은 총 4가지입니다. 포인터 변수를 통해 직접 메모리 주소를 가져오는 것과 배열을 통해 지역변수를 선언하여 문자 배열의 정보를 담는 것은 전혀 다른 것인가요? 그렇다면 1행의 정보는 stack 영역에 저장되는 것인가요? 배열도 상수화된 포인터이기에 1행과 2행이 같은 메모리 주소를 가리켜야 되는 것이 아닌가요? 2행에서 선언된 포인터 변수의 경우 배열 연산자로 접근하여 쓰기를 시도할 경우 엑세스 위반의 예외를 알려주는데 읽고 쓰는 권한 때문에 다른 메모리 주소를 가리키게 되는 것인가요?

  • c
  • kernel
  • secure-coding
두부두부 댓글 1 좋아요 0 조회수 317

라이브러리

해결됨

독하게 되새기는 C 프로그래밍

정적 라이브러리 보다는 동적 라이브러리의 장점이 많은 것 같은데, 정적 라이브러리도 많이 사용되나요? 정적 라이브러리가 가지는 장점은 무엇이 있는지 궁금합니다.

  • c
  • kernel
  • secure-coding
남구 댓글 1 좋아요 0 조회수 294

인기 태그

인프런 TOP Writers

주간 인기글