inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

3.3 scanf() 15분 18초 질문

미해결

홍정모의 따라하며 배우는 C언어

교수님께서 설명하신 부분 중에 왜 이렇게 하는가라는 게 왜 scanf 입력을 받고 메모리에 덮어쓰는가 이 뜻인가요? 이렇게 한다라는 게 정확히 어떻게 한다는 것인지 궁금합니다. 그리고 왜 이렇게 하는지에 대한 이유가 C문법에서는 함수 출력 1개만 가능하고, scanf함수는 여러개의 입력을 받고 값을 바꿔줘야 하는데 그걸 출력으로 할 수 없기 때문이라고 하셨는데 함수 출력을 1개만 가능하다는 게 어떤 건지, 값을 바꿔주는 걸 출력으로 할 수 없다는 게 무슨 말인지 잘 모르겠습니다,,, 조금 더 설명 해주시면 감사하겠습니다!

  • c
sara0099 댓글 1 좋아요 1 조회수 348

39g-merge-global-large.cu에 대해서 질문드립니다.

해결됨

CUDA 프로그래밍 (6) - C/C++/GPU 병렬 컴퓨팅 - 서치 & 소트

안녕하세요. 예저코드 39g-merge-global-large.cu를 보던 중에 궁금증이 생겨 질문 드립니다. 제가 궁금한 부분은 deviceMergeSort함수 마지막 부분에 아래의 2줄입니다. cudaMemcpy( vecC, dev_vecC, TOTAL_NUM * sizeof(unsigned), cudaMemcpyDeviceToHost ); cudaMemcpy( dev_vecB, dev_vecC, TOTAL_NUM * sizeof(unsigned), cudaMemcpyDeviceToDevice ); dev_vecC에 들어 있는 정렬된 데이터를 왜 for문 내부에서 dev_vecB와 vecC로 계속 memcpy하는 걸까요? 제 생각에는 dev_vecB는 주소값을 스왑하여 사용하면 될거 같았고, vecC도 계산 모두 마무리되어 for문밖에서 복사해줘도 될거 같다고 생각이 들어서요.

  • c
  • c++
  • cuda
  • gpu
박 신석 댓글 1 좋아요 0 조회수 384

declspec(dllimport) 와 extern 은 무슨차이가 있나요?

해결됨

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

dll 을 사용하는 쪽에서 __declspec(dllimport) 대신에 extern 을 써도 결과가 같던데 다른 차이가 있을까요?

  • c
infeet 댓글 1 좋아요 0 조회수 1200

콘솔(CON)은 파일인가요? 디바이스인가요?

해결됨

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

제목 그대로입니다~ 콘솔(CON)은 파일인가요? 디바이스인가요? 설명 중간에는 파일이라 하시고, 끝 부분에는 디바이스라고 하셔서요 아님 두 개가 같은 의미인가요??

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

자료

미해결

홍정모의 따라하며 배우는 C언어

안녕하세요 강의 열심히 듣고 있는 대학생입니다! 혹시 강의 자료 PPT들은 따로 공유해주지 않으시나요? 복습에 쓰고 싶어서요!

  • c
정현경 댓글 2 좋아요 1 조회수 575

2차원 배열 만들때 자동화가 덜 되나요?

미해결

홍정모의 따라하며 배우는 C언어

temp_data 2차원 배열을 만들때 일일히 36개의 온도를 다 입력하는게 아니라 그냥 예를 들어 double data={year2016, year2017, year2018}로 해보려는데 이건 안되더라구요, Q. 2차원 배열을 선언할 때 { }안에 {}을 넣어줘야하는데 그냥 사전에 선언된 길이가 동일한 1차원 배열을 집어넣는건 왜 안되나요? 그냥 c에서 정해놓은 문법인가요?

  • c
ILLIP 댓글 1 좋아요 2 조회수 520

배열과 벡터에 대해 질문드립니다

해결됨

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

안녕하세요 선생님^^ 강의를 듣다 헷갈리는 부분이 있어 질문 드립니다 배열이 메모리의 데이터 영역에 할당된다고 하셨는데 혹시 c++도 해당되는 내용인가요? 제가 강의를 c++로 따라가고 있는데 보통은 스택이나 힙에 할당되고 전역으로 선언하면 데이터 정도로만 알고 있어서 혹여나 c는 다른지? 아니면 제가 모르는 내용이 있는지 궁금해서 질문드립니다 지역변수 벡터 v가 있을 때 &v와 &v[0]가 다른 점은 이해가 가는데요, 다만 &v보다 &v[0]가 더 큰 이유를 모르겠습니다... 벡터는 힙에서 동적 할당되는게 아닌가요? &v가 스택이고 &v[0]가 힙이라면 힙이 더 낮은 주소에 위치하니까 &v[0]이 더 작아야 한다고 생각하는데 제가 뭔가 잘못 생각하고 있는 걸까요? 아래는 x86 실행 사진입니다 빠르게 완강하고 소켓 강의 듣고싶은데 집에만 오면 녹초가 되니 참 난감하네요 혼자서 공부한다는게 참 쉽지 않은 일인듯 합니다. ㅠㅠ 그래도 좋은 강의를 들을 수 있어 행운이겠지요~~ 항상 감사드립니다^^

  • c
  • c++
sete 댓글 1 좋아요 0 조회수 484

Error in this lecture가 이 뜻 맞나요?

미해결

홍정모의 따라하며 배우는 C언어

강의 8번째 코드 printf("%d\n", *ptr); // 사용자가 입력한 숫자를 dereferencing하려고 해서 당연히 에러가 발생한다 라고 강의에서 언급되는데 사실 정확한 이유를 모르겠어서 제가 추론한 게 맞나 궁금합니다. ptr의 주솟값 자체는 0으로 선언했으나 *ptr, 즉 주소를 따라가서 나타나게 된 그 변수의 값은 null이라서 null을 dereferencing 할 수가 없어서 에러가 생기는 것이다 라고 이해하면 맞을까요?

  • c
ILLIP 댓글 1 좋아요 1 조회수 469

두번째 입력부터 컴파일을 멈춥는데 왜 그런거죠?

해결됨

홍정모의 따라하며 배우는 C언어

강의에 올라온 코드를 똑같이 입력해 컴파일을 해보아도 처음값까지는 잘 입력이 되는데 두번째로 입력하면 컴파일을 종료합니다. 답변 부탁드립니다. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main(void) { int num, sum = 0; int status; printf("정수를 입력해주세요 :\n"); status = scanf("%d", &num); while (status == 1) { sum = sum + num; printf("정수를 입력해주세요 :\n"); status = scanf("%d, &num"); } printf("sum = %d\n", sum); return 0; }

  • c
김청해 댓글 1 좋아요 1 조회수 447

if __name__=="__main__" 사용 기준

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

강사님 안녕하세요 :) 유익한 강의 잘 듣고 있습니다! 학습 중 궁금한 점이 있어서 질문드립니다. 강사님께서 DFS문제 외에도 코드 시작 부분에 이 코드를 작성하실 때가 종종 있는데 혹시 강사님의 사용 기준이 있는지 궁금합니다. ex) [섹션 8] 회장뽑기(플로이드-와샬) 사용 O vs 위상정렬(그래프 정렬) 사용 X

  • python
  • 코딩-테스트
댓글 1 좋아요 0 조회수 386

파일 생성해서 쓰고 읽을 시, 쓰거나 읽을 내용은 메모리에 버퍼 되나요?

해결됨

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

fopen 해서 파일을 읽게 되면, disk 상에서 File * 포인터 주소에서부터 순차적으로 연속된 메모리 배열로 존재하게 되는 것이고, 파일을 쓰게 되면 쓰는 내용들에 메모리 버퍼에 순차적으로 쌓이다가 fclose 하는 순간 disk 공간으로 flush 되는 건가요? 이때 커널의 i/o 드라이버와 HDD or SSD의 디스크 컨트롤러가 동작하는 구조인 것이고요? 추가로, fclose 함수는 blocking 방식으로 동작하는 함수 인지 알고 싶습니다.

  • c
  • kernel
  • file-system
imwoodam 댓글 1 좋아요 0 조회수 514

0.2 강의 - 바이오스 질문!

해결됨

홍정모의 따라하며 배우는 C언어

안녕하세요 늘 좋은 강의 감사합니다. 제가 강의를 대해 제대로 이해했는지 궁금해서 질문드립니다. 처음 컴퓨터가 부팅될 때 모니터에 나타나는 항목들은(BIOS Setup같은..) ROM이라는 메모리에 저장된 정보들인가요? Bios Setup과 같은 항목들이 나타나는 화면부터 OS가 켜지기 전까지 Rom안의 부트 프로그램이 전반적인 하드웨어의 상태를 검사하는 건가요? 어떤 블로그 글에서는 바이오스가 PC에 탑재된 모든 하드웨어 및 소프트웨어의 기본적인 동작을 제어한다고 합니다. 여기서 말하는 바이오스란 ROM안에 저장돼있는 부트 프로그램이라고 볼 수 있을까요? 이것이 맞다면 블로그의 글은 ROM 바이오스를 퉁쳐서 그냥 바이오스라고 부르는 것인가요? (혹시 몰라 블로그 링크 올리겠습니다. https://blog.naver.com/comgghh/140176058280 )

  • c
이재완 댓글 1 좋아요 1 조회수 503

리터럴에 대해 궁금증이 생겨 질문드립니다.

미해결

홍정모의 따라하며 배우는 C언어

평소에는 머신코드로 작성된 실행파일의 형태로 존재하겠지만, 그 실행파일을 실행명령을 내려 운영체제가 RAM위에 올리게 되면 (RAM에 올리게되는 방식은 운영체제 프로그램별로, 컴파일러 프로그램별로 각각 상이함.) 결국 main함수에서 소스코드로 써 내려간 명령코드들, 프로그램 내부에서 사용하기 위해 선언 한 변수, 혹은 상수(const 변수), 그외의 리터럴값들 등등이 RAM위에 올라가게되고 CPU와 RAM의 상호작용으로 프로그램이 실행되고. 보통 일반적으로 CPU가 RAM의 각 메모리주소 속 데이터를"복사"해서 레지스터에 임시저장시킨뒤 거기서 명령코드를 디코딩해서 해석한대로 명령코드들을 수행하는구나 라고 C언어 강의 첫주차에서 배웠던것이 기억나는데요. 첫주차 강의를 들으며 제가 이해한 바로는, 예컨대 int a = 42; 라는 코드를 프로그램이 수행하는 방식은 1. a 라는 변수명에 할당되는 특정 메모리주소와 그 메모리주소의 공간에는 4byte라는 공간을 만들어 두게 될 것이고 2. 42라는 리터럴 값 역시도 접미사가 붙지는 않았지만, 컴파일러가 컴파일 하는 과정에서 적절히 특정 정수형 자료형의 리터럴값으로 처리하여, RAM위에 올라간 다음 3. a = 42; 라는 대입연산자를 수행하게 되면 42라는 값을 지시하는 메모리주소의 값을 CPU의 레지스터가 복사하여 임시저장하고있다가, 그것을 a라는 메모리주소에 대입시킨다 라고 이해하고 있습니다. 질문드리고 싶은것은 Q1)이번 5.2 강의에서 교수님께서 i = 1024; 라는 코드에서 1024와 같은 리터럴 값들은 메모리 공간을 부여받지 못하기 때문에 data object가 아니다 라고 말씀하셨는데.. 리터럴 값들은 프로그램이 실행될 때, RAM에 올라가지 않는건가요? Q1-2) 만약 리터럴 값들을 운영체제가 메모리에 올려주지 않는다면 i = 1024; 와 같이 대입연산자의 명령을 CPU가 처리할 때, "어디서" 1024라는 리터럴값을 복사해서 레지스터에 임시저장해두었다가 a라는 메모리주소에 대입할 수 있는걸까요? Q2) const라는 제한자를 이용하여 선언 및 초기화시킨 상수는 메모리 주소도 메모리 공간도 가지고 있다. 그래서 l value이다. 그런데 앞선 다른 5.2강의 질문들에서 object 들은 항상 l-value이지만, l-value들은 항상 object가 아니다 라는점 확인했습니다. 그렇다면 초기화 이후 값을 변경할 수 없는 상수는 object가 맞는걸까요? 아직 l-value와 object의 차이가 감이 안잡혀서 질문드렸습니다.

  • c
이상우 댓글 1 좋아요 2 조회수 687

GetText()사용법

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

GetText 사용법이 감이 잘 안오네요 while과 state없이 GetText()를 실행하면 텍스트 출력이 안되네요.. 파이썬에서 정확한 문법 정의가 어떻게 되는지요?

  • python
  • 한컴오피스
schnabel 댓글 2 좋아요 1 조회수 2027

수업 자료에 오류가 있는것 같습니다 ㅠ

해결됨

한국인이 좋아하는 속도로 때려넣는 파이썬

문서 정리 자동화 소프트웨어 만들기 압축 파일에 직원 정보라는 파일이 들어있지 않네요 ㅠ

  • python
eric040928 댓글 2 좋아요 0 조회수 612

예제 코드에 대해서 질문 드립니다.

해결됨

CUDA 프로그래밍 (6) - C/C++/GPU 병렬 컴퓨팅 - 서치 & 소트

안녕하세요! 38-4 강의를 수강하고 예제 코드를 확인하는 과정에서 몇 가지 궁금증이 생겨 질문을 드립니다. kernel 함수 내 변수에서 register를 붙이시던데 이렇게 붙였을때 이점이 있을까요? 두 번째 for문 같은 경우에 halfsize *= 2 이렇게 표현할 수 있는데 비트연산으로 나타 내시던데 이유를 알 수 있을까요?? 변수를 선언할때 unsigned 만 작성하시던데 이것도 이유가 있을까요?? 어찌 보면 굉장히 사소할 수 있는 질문들이지만, 그래도 이유를 알면 배울 수 있는 부분이 많을거 같아 질문 드립니다.

  • c
  • c++
  • cuda
  • gpu
박 신석 댓글 1 좋아요 0 조회수 422

교환 문의

미해결

홍정모의 따라하며 배우는 C언어

제가 따배씨와 따배씨++강좌를 혼동해서 잘못 결제했는데 ++강의로 남는금액 추가결제하고 강의 변경 가능할까요 c강의는 이미 다 알아서 아직 한번도 안들은 상태입니다

  • c
k200212 댓글 1 좋아요 1 조회수 411

예제 코드문의

미해결

홍정모의 따라하며 배우는 C언어

안녕하세요 수강중인 사람인데요~ 혹시 수업에 나오는 예제코드들을 다운받거나 할 수있나요?? 따라하며 배우긴 하는데, 양이 너무 많아서요~

  • c
jungdabin8 댓글 1 좋아요 1 조회수 482

07:30 int *ptr=&arr[0][0]; 질문있습니다.

미해결

홍정모의 따라하며 배우는 C언어

2 차원 배열 첫 주소를 포인터에 대입해서 출력할 때 강의를 보면서 들던 생각은 어째서 %d 로 값을 출력하는데 asterisk 를 사용하지 않는지? 그리고 어떻게 포인터에 indexing 을 배열처럼 사용할 수 있는지 궁금합니다. 그리고 포인터에 배열을 사용하지 않고 #include <stdio.h> int main() { int arr[2][3] = { 1,2,3,4,5,6 }; int* ptr = &arr[0][0]; for (int k = 0; k < 6; k++) printf("%d\n", *(ptr+k)); return 0; } 이 코드처럼 asterisk 를 사용하여 주소 값에 자료형만큼 더하는 것과 어떤 차이가 있나요?

  • c
김영진 댓글 1 좋아요 1 조회수 340

인기 태그

인프런 TOP Writers

주간 인기글