inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Putchar 관련 질문입니다

해결됨

독하게 시작하는 C 프로그래밍

Puchar 명령어는 buffer에 값을 넣는 것뿐만아니라 printf 처럼 화면에 출력하는 기능까지 포함된 것이라고 이해해도 될까요? getchar는 문자를가져와 읽는 기능인 것처럼 putchar또한 메모리 buffer안에만 write하는건 아닐까 했습니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
sCyn 댓글 1 좋아요 0 조회수 366

WaitForSingleObject 함수 질문

해결됨

Windows 시스템 프로그래밍 - 기본

WaitForSingleObject 함수 질문드립니다. 핸들을 넘겨주고 해당 스레드의 상태가 변화하는지를 체크한다고 하셨는데, 여기서 말씀하신 변화라는게 어떤 것을 말씀하시는걸까요?

  • c
  • system-programming
  • vc++
가나파이 댓글 1 좋아요 0 조회수 371

포인터 산술과 관련해서 질문 드립니다

미해결

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

printf("Note: t is for pointer difference, %td\n", ptr2 - ptr1); 에서 포인터 간의 차이로 배열 사이의 거리 또한 알 수 있다고 이해하였습니다. 그런데 의문이 드는게 포인터는 char* arr 이던 int *arr이던간에 운영체제에서 정해준 크기로 항상 같다는것으로 알고 있는데 이처럼 double* ptr1, *ptr2로 선언하고 double arr1[5] = { 10, 13, 12 ,7, 8 }; ptr1 = &arr1[0]; ptr2 = &arr1[4]; double 형의 배열의 요소에 적용을 하였더니 원하는 결과인 4가 나왔습니다 하지만 이처럼 int* ptr1, *ptr2; 로 선언하고 double arr1[5] = { 10, 13, 12 ,7, 8 }; ptr1 = &arr1[0]; ptr2 = &arr1[4]; printf("Note: t is for pointer difference, %td\n", ptr2 - ptr1); 로 포인터 사이의 거리를 출력하라 했더니 8로 나왔습니다. 이는 실제 포인터 연산에서는 int형으로 계산했지만 메모리 간의 실제 간격은 double 형이라서 4바이트인 int형의 2배인 8바이트간의 거리라서 8 * 4 / 4 = 8 인 결과가 나온것인가요? 포인터간의 연산은 포인터가 선언된 자료형에 따라서 그 크기가 결정되는것인가요?

  • c
최상현 댓글 1 좋아요 1 조회수 284

3.13 불리언형 질문

미해결

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

b1=0; b1=1; 이걸 왜 해줘야 되나요?

  • c
파이팅 댓글 1 좋아요 1 조회수 269

디바이스 파일에 대해서 여쭤보고 싶습니다.

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요. 강사님. 입출력과 관련된 부분은 운영체제가 처리를 해주는 것으로 알고있습니다. 일반적으로 입출력을 수행할 때 OS가 제공해주는 API를 사용해서 입출력을 수행할텐데 그 행위 자체가 내부적으로 디바이스 파일을 사용하도록 구현이 되는 구조인걸까요 ? 디바이스 파일을 제공해주는 것은 알겠는데 그걸 직접적으로 활용하는 코드는 다뤄본적이 없어서요...

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
home 댓글 1 좋아요 0 조회수 432

[ 문자, 정수 입력과 개행문자 제거 ] scanf_s, gets_s 차이점

해결됨

독하게 시작하는 C 프로그래밍

설명을 잠시 멈춰두고 혼자서 예제를 만들어봤습니다 근데 gets_s 함수대신 scanf_s 함수를 사용해서도 결과물이 똑같이 나왔는데 어떤걸 사용하든 상관이 없나요? #include <stdio.h> int main(void) { char szName[32] = { 0 }; int nAge = 0; printf("나이를 입력하시오 : "); scanf_s("%d", &nAge); printf("이름을 입력하시오 : "); scanf_s("%s", szName, sizeof(szName)); printf("\n"); printf("당신의 나이는 %d세 입니다\n", nAge); printf("당신의 이름은 %s입니다\n", szName); return 0; }

  • c
  • vc++
댓글 1 좋아요 0 조회수 523

부동소수점형

미해결

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

3.11 부동소수점형 9:17에서 8비트 언사인드 정수는 0에서부터 255까지라고 하셨는데 왜 1부터 256이 아니라 0부터 255까지인건가요? 그리고 왜 124에서 127을 빼줘야 되는지 이해가 안가요 2^124-127 이부분이요

  • c
파이팅 댓글 1 좋아요 2 조회수 283

global memory를 사용한 matrix copy 대비 global memory를 활용한 matrix transpose가 속도가 느린 이유가 궁금합니다.

해결됨

CUDA 프로그래밍 (4) - C/C++/GPU 병렬 컴퓨팅 - 행렬 matrix 곱하기

안녕하세요. 먼저 좋은 강의 감사드립니다. 아래 소스는 matcpy-dev.cu 에서 가져온 kernel 함수입니다. global void kernelMatCpy( float* C, const float* A, int matsize, size_t pitch_in_elem ) { register unsigned gy = blockIdx.y * blockDim.y + threadIdx.y; // CUDA-provided index if (gy < matsize) { register unsigned gx = blockIdx.x * blockDim.x + threadIdx.x; // CUDA-provided index if (gx < matsize) { register unsigned idx = gy * pitch_in_elem + gx; // in element C[idx] = A[idx]; } } } 그리고 다음 소스는 transpose-dev.cu 에서 가져온 kernel 함수 입니다. global void kernelMatTranspose( float* C, const float* A, unsigned matsize, size_t pitch_in_elem ) { register unsigned gy = blockIdx.y * blockDim.y + threadIdx.y; // CUDA-provided index if (gy < matsize) { register unsigned gx = blockIdx.x * blockDim.x + threadIdx.x; // CUDA-provided index if (gx < matsize) { register unsigned idxA = gy * pitch_in_elem + gx; register unsigned idxC = gx * pitch_in_elem + gy; C[idxC] = A[idxA]; } } } 메모리 접근 관점에서 보면 각 thread별로 A에서 read해서 C에 write하는 동일한 과정으로 보이는데, 결과는 속도 차이가 많이 나는 정확한 원인이 궁금합니다. memory coalescing 때문으로 추정하고 있는데, 맞는 생각일까요? 감사합니다.

  • c
  • c++
  • cuda
  • gpu
  • 병렬-처리
LongLong 댓글 1 좋아요 0 조회수 384

t 쓰는 이유

미해결

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

3.9 고정 너비 정수 3:22 질문입니다 int32_t 에서 언더바 뒤에 t를 써야 되는 이유가 뭔가요? 왜 t인지 궁금해요

  • c
파이팅 댓글 1 좋아요 1 조회수 292

실수 질문

미해결

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

3.5 정수와 실수 16:45 질문입니다 실수에서는 왜 Unsigned가 없는건가요? 소수도 부호를 가질 수 있지 않나요?

  • c
파이팅 댓글 1 좋아요 1 조회수 225

정수 질문

미해결

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

3.5 정수와 실수 12:09 화면 캡처 질문입니다 각 칸에 0과 1이 들어가야 되는 이유랑 왜 0101 1110인지 궁금합니다 어떤건 0이고 어떤건 1인데 어떻게 구분하는건가요?

  • c
파이팅 댓글 1 좋아요 1 조회수 218

안녕하세요

미해결

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

안녕하세요 인프런은 처음인데 따배C강의 무제한이면 언제든지 계속 들을수있는건지 궁금합니다. 혹시 아는내용은 스킵해도 수료증발급가능한지도 궁금합니다. 감사합니다.

  • c
kk kk 댓글 1 좋아요 1 조회수 387

mac 환경에서 실습할 경우

해결됨

Airflow 마스터 클래스

안녕하세요 mac 환경에서 강의를 수강하려고 합니다. 이러한 경우 wsl 설치 없이 다음 강의로 넘어가면 될까요??

  • python
  • 데이터-엔지니어링
  • airflow
lucli 댓글 1 좋아요 0 조회수 533

10-17. 변수로 길이를 정할 수 있는 배열

해결됨

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

안녕하세요. 제가 설명하는 내용이 맞는지 몰라 질문드립니다. 제 설명의 틀린 부분을 지적해주시면 감사하겠습니다. visual studio가 아닌 온라인 c compiler를 이용하면 가변 길이 변수를 사용할 수 있습니다. 가변 길이 변수를 이용하면, int sum2d_4(int row, int col, int ar[row][col]) // row 생략 가능 { int r, c, tot = 0; for (r = 0; r < row; r++) for (c = 0; c < col; c++) tot += ar[r][c]; return tot; } 이와 같은 함수를 사용할 수 있습니다. 즉 int sum2d_2(int ar[][COLS], int row) { int r, c, tot = 0; for (r = 0; r < row; r++) for (c = 0; c < COLS; c++) tot += ar[r][c]; return tot; } 이 함수와 달리, symbolic constant(매크로)를 사용하지 않고 함수의 매개변수 만으로 배열 메모리에 접근하여 함수의 기능을 구현할 수 있는 것입니다. 따라서 VLAs의 기능을 통해, int sum2d_3(int* ar, int row, int col) { int r, c, tot = 0; for(r = 0; r < row; r++) for(c = 0; c < col; c++) tot += *(ar + c + col * r); // ar[c + col * r] return tot; } 포인터를 이용한 위의 함수처럼, 매개변수 만으로 함수의 기능을 구현하고 배열 메모리에 접근할 수 있습니다. 다만, c언어에서 동적할당이 VLAs의 기능을 대체할 수 있고 컴파일러에 따라 VLAs가 불안정하게 작동할 수 있기 때문에 현재 visual studio에서는 사용이 막혀있습니다. 이상의 설명 중 틀린 부분을 지적해주시면 감사하겠습니다. 늘 친절하고 세세한 답변 감사합니다. 좋은 하루 보내세요!

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

theme 적용이 되지 않습니다.

해결됨

실전 프로젝트로 배우는 데이터 앱 만들기 with Python & Streamlit

theme 적용시, 강사님께서 말씀해주신 것처럼 작업 폴더에 .streamlit 폴더를 만들고, 그 안에 config.toml 파일을 만들어 테마 적용을 했지만, 아래의 문구가 발생하며, 태마가 적용이 되지 않습니다. The page that you have requested does not seem to exist. Running the app's main page. 어떤 이유 인지 알려주세요.

  • python
  • streamlit
동현고 댓글 1 좋아요 0 조회수 494

강의 "16진수가 표기가 사용되는 예"에서 8:35

해결됨

독하게 시작하는 C 프로그래밍

안녕하세요 유투브에서 알게 되어서 강의구매까지 한 전진호입니다. 메모리 화면에서 64bit를 설명하시고, 16바이트를 계산하셨는데, 저 바이트 코드가 왜 적힌 것이고, 어떤 의미인지 궁금합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
전진호 댓글 2 좋아요 0 조회수 402

비주얼 스튜디오 클래스 뷰 설정 관련

해결됨

독하게 시작하는 C 프로그래밍

비주얼 스튜디오 클래스 뷰 설정에서 여러 프로젝트 항목들은 어떻게해야 각종 예제들을 묶은 경우와 같이 리스트가 생성 되는지 궁금합니다.

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
Alive^^ 댓글 1 좋아요 2 조회수 960

scanf가 작동하는 방식 %d, %lf

미해결

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

scanf가 작동하는 방식이 %d가 들어있다면 정수를 받겠다고 판단을 해서 1.23456이 들어와도 1까지만 받아들이는 것이고 %lf인 경우에는 실수 형태를 받겠다고 판단을 해서 1.23456을 1.23456까지 다 받아들인다는 건가요?

  • c
최대웅 댓글 1 좋아요 1 조회수 319

포인터

미해결

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

int* ptr = arr; printf("%p %p", ptr, arr); 이럴 때 ptr은 arr주소로 가는 것이라 ptr의 주소는 따로 있다고 생각을 했거든요. 그래서 둘의 주소값이 다르다고 생각했는데 왜 같게 나오는 건가요.. 계속 이어서 수강했는데, 어디 강의로 가야 이에 대한 설명을 들을 수 있을까요, 아니면 여기서 설명해주시면 감사하겠습니다.

  • c
김효정 댓글 1 좋아요 1 조회수 281

완전탐색 1090번 시간초과

미해결

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

예제 문제는 잘 풀리는데 백준에 제출하니까 시간초과가 뜹니다 강의 자료랑 큰 차이는 없어 보이는데 어느 부분을 고쳐야 시간 안에 계산 가능할까요? #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char **argv) { int n; int minX, minY, maxX, maxY; cin >> n; int arr[n][2]; for(int i=0; i<n; i++){ cin >> arr[i][0] >> arr[i][1]; } minX = arr[0][0]; maxX = arr[0][0]; minY = arr[0][1]; maxY = arr[0][1]; for(int i=1; i<n; i++){ if(arr[i][0]>maxX){ maxX = arr[i][0]; } else if(arr[i][0]<minX){ minX = arr[i][0]; } if(arr[i][1]>maxY){ maxY = arr[i][1]; } else if(arr[i][1]<minY){ minY = arr[i][1]; } } int arr_answer[n]; int arr_dis[n]; for(int i=minY; i<=maxY; i++){ for(int j=minX; j<= maxX; j++){ for(int l=0; l<n; l++){ int subY= 0, subX=0; subY = i-arr[l][1]; subX = j-arr[l][0]; arr_dis[l] = abs(subX) + abs(subY); } int sum = 0; for(int k=0; k<n; k++){ sum+=arr_dis[k]; if(i==minY && j ==minX){ arr_answer[k] =sum; } else if(sum < arr_answer[k]){ arr_answer[k] = sum; } } } } for(int i=0; i<n; i++){ cout << arr_answer[i] << " "; } return 0; }

  • python
  • 코딩-테스트
  • 알고리즘
yongyong213 댓글 2 좋아요 1 조회수 616

인기 태그

인프런 TOP Writers

주간 인기글