inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

번외질문 - 프로젝트명 변경 질문드립니다.

해결됨

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

비주얼 스튜디오 상에서 프로젝트명을 변경하면 프로젝트가 저장된 위치에 폴더명과 파일명들은 같이 변경이 안되던데 방법 알고 싶습니다

  • c
  • 컴퓨터-구조
  • assembly-language
  • vc++
고트. 댓글 2 좋아요 0 조회수 728

IrDA 통신

미해결

HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌

적외선 송수신 관련 강의도 해주세요...ㅠㅠㅠㅠㅠㅠ

  • c
  • iot
  • 드론-개발
dayday 댓글 1 좋아요 0 조회수 309

문자 숫자

미해결

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

4.3 문자열이 메모리에 저장되는 구조 13:15 질문입니다 실행했을때 위 동그라미1까지는 문자가 출력되었고 동그라미2에서는 숫자가 출력됐는데요 그 이유가 동그라미2는 배열에 있는 '값'들을 접근해서인가요? '값'은 출력될때 숫자로 출력되어야 해서..인가요? 그리고 동그라미2에서 앞에 %hhi %hhi %hhi 이거요 왜 hhi를 써줘야 되나요?

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

i

미해결

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

4.3 문자열이 메모리에 저장되는 구조 초반부 예시 질문입니다 앞에 %i%i%i에서 왜 i를 써야 되나요?

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

작은 따옴표

미해결

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

4.3 문자열이 메모리에 저장되는 구조 1:50에서 문자 하나 한칸 안에 'a' 이렇게 써져있잖아요 왜 작은 따옴표를 써야 되나요? 그냥 a라고 쓰면 안되나요?

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

포인터, 배열, 문자열을 공부하기 위한 최소 범위(?)

미해결

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

안녕하세요 컴공과 1학년 학부생입니다. 제가 당장 2주뒤에 c언어 중간고사를 보는데, 범위가 (포인터, 배열, 문자열) 입니다. 문제는 제가 c언어를 이번 학기에 처음 배워서 이 강의를 들으며 따로 공부하고 있지만, 중간고사 전까지 진도를 나가지 못할 것 같습니다. 일단 포인터, 배열, 문자열 공부를 시작해야 하는데 이 것을 하기 위해 최소한으로 ~는 해야한다 이런 것이 있을까요? 진도는 섹션3까지 나갔습니다.

  • c
댓글 1 좋아요 1 조회수 246

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 조회수 288

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 조회수 527

부동소수점형

미해결

홍정모의 따라하며 배우는 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 조회수 293

실수 질문

미해결

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

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

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

정수 질문

미해결

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

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

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

안녕하세요

미해결

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

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

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

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 조회수 209

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

해결됨

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

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

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

인기 태그

인프런 TOP Writers

주간 인기글