묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍정모의 따라하며 배우는 C언어
float의 가장 작은 값
강의에서 1:00에서 변수 max에다가 float가 가질 수 있는 가장 작은 값을 입력하는데 FLT_MAX에다가 -를 붙이는데 FLT_MIN을 사용하지 않는 이유가 뭔가요?또 정수형의 경우예를들어 char형이면 char형의 최댓값은 127이고 최솟값은 -128이어서 최댓값인 127에 -를 붙여도 최솟값이 안되는데실수의 경우는 다른가요? 그냥 최대값인 FLT_MAX에 -를 붙이면 최솟값이 되나요? 항상 감사합니다!!!
-
미해결홍정모의 따라하며 배우는 C언어
강의 예제 flag의 사용이유
강의 초반부분 0:20 부분을 보고 코드를 짜보았습니다.#include <stdio.h> int main() { char ch; int characters = 0, words = 1, lines = 1; printf("Enter text : "); while ((ch = getchar()) != '.') { if (ch == ' ') words++; else if (ch == '\n') lines++; else characters++; } printf("Character = %d, Words = %d, Lines = %d", characters, words, lines); return 0; }이 후 강의를 끝까지 다 봤는데 교수님의 코드와 저의 코드는 상당히 달랐습니다. 교수님은 flag라는 _Bool자료형을 사용했습니다.코드를 한줄 한줄 읽어가면서 flag가 어떤식으로 작동하는지는 쪼오끔 알았는데 flag를 사용하는 이유를 모르겠습니다.강의를 보면 프로그래머들이 자주 사용하는 형식이라고 하는데 flag의 장점이 뭔가요? 항상 감사합니다!!!
-
해결됨CUDA 프로그래밍 (3) - C/C++/GPU 병렬 컴퓨팅 - 메모리 구조
video에 필터를 적용하는 경우
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 너무 좋은 강의 다시 한번 감사드립니다. 다름이 아니고, video에서 각각의 frame별로 filter를 처리하는 부분을 cuda도 구현하는 코드를 짠다고 가정할 때, 각 프레임은 W x H x C ( rbg) 의 차원을 가지고 있고 영상이기 때문에 영상은 W x H x C x T 의 차원을 가지고 있을 겁니다. 그렇다면, cudaMalloc3D나 cudaMemecpy3D 부분을 사용해서 각 frame을 처리하고 ( device ) 나머지는 for 문 ( host ) 으로 시간에 따라 frame을 device로 보내도록 구현하였습니다. 그런데 혹시 시간 부분 까지 device에서 처리할 수 있는 방법이 있는 지가 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C언어
/0 앞에 띄워쓰기 유무로 자릿수가 변하나요?
char str3[20] = "Hello,\0World";char str3[20] = "Hello, \0World";printf("%c\n", str3[10]); 의 값이, 바로뒤에\0를 치면 l이고, 하고 한 칸 띄고 \0을 치면 r입니다. h = 0번째e = 1번째..., = 5번째\0 = 6번째W = 7번째o = 8번째r = 9번째l = 10번째d = 11번째 중간에 띄워쓰기도 공백으로서 자릿수를 차지해서위와 같은 결과가 나오는 걸까요?
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
global 변수가 cuda memory에서 사용되는 이유
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 선생님! 궁금한 게 있어서요. device memory와 host memory는 구분되어 있잖아요?? 그래서 각각 사용되는 데이터는 각각의 메모리에서 사용하는 것으로 알고 있었어요. 그런데 vecSize 나 saxpy_a는 global로 선언 되어 있는데, 이 변수들은 device메모리에서 어떻게 사용하는 거죠?? global 변수의 위치는 host memory에 위치 하지 않나요??
-
미해결홍정모의 따라하며 배우는 C언어
강의 내용 중 연산자의 우선순위
강의 17:00부분을 보면 어떠한 expression이 있을 때 괄호의 경우 어느것 먼저 계산될지는 c언어 표준에 정해져있지않으므로 컴파일에 따라 결정된다고 설명해주셨습니다.그런데 구글에 c언어 연산자 우선순위를 검색하면 associativity라고 있는데 연산자 우선순위가 같은 경우 이 방향에 따라서 결정되는거 아닌가요?괄호 같은 경우 연산자 우선순위가 1순위지만 associativity가 왼쪽에서 오른쪽이므로 여러개 있을경우 왼쪽부터 계산되는거 아닌가요?제가 잘못이해한걸까요?감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
강의 예제
#include <stdio.h> int main() { int number; printf("Input a positive integer : "); scanf("%d", &number); if (number % 2 == 0) printf("Even"); return 0; }강의 예제에서 숫자를 받아서 그 숫자가 짝수면 Even을 출력하는 예제를 만들었습니다.숫자를 문자 'A'로 받으면 'A'는 65니까 당연히 아무것도 출력이 안될줄알았는데 왜 Even이 출력되는걸까요?
-
미해결홍정모의 따라하며 배우는 C언어
다중 구조체 문의
안녕하세요 수강생 입니다.문의 사항이 있어 글 남깁니다.다중 구조체에 대해 문의남깁니다.예를들어struct test{int a=0;int b=0;}TEST[2][2] *PTEST[2][2]; 이런 식 입니다.이때, 구조체에 접근할 때 주소연산자가 아닌 대입으로 접근이 가능한데 왜 그런가요?예를 들어..PTEST[2][2]->a 는 접근이 안되고 TEST[2][2].a는 접근이 됩니다.
-
미해결홍정모의 따라하며 배우는 C언어
12.2 강의 질문있어요
안녕하세요.const char* str = “Constant string”; // str is a modifiable lvalue.str = “Second string”; // “Constant string” = “Second String” // imposiblestr[0] = ‘A’; //Error char str2[] = “String in an array”;str2[0] = ‘A’; // OK 문자열 포인터 개념이 좀 어렵게 느껴지네요.str[0] = ‘A’; 은 왜 안되는 건가요? 만약 포인터를 이용해서 0번째 배열에 원소를 저장하고 싶으면 어떻게 해야 하나요?
-
해결됨CUDA 프로그래밍 (1) - C/C++/GPU 병렬 컴퓨팅 - CUDA 커널 kernel
gpu-add.cu 부분에서 커널 lanch 이후 cudaDeviceSynchronize() 부분 질문이요
- 출장이 잦아서, 답변에 시간이 좀 걸릴 수도 있습니다. 양해 바랍니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 선생님 좋은 강의 잘 듣고 있습니다. 강의 부분에 질문이 하나 있어 이렇게 남깁니다.kernel 을 launch한 이후에 cudaDeviceSynchronize() 를 call 해주는 이유가 kernel의 작업 완료를 보장하기 위함이라는 사실은 인지하고 있습니다.그런데, 그 아래 부분에서 cudaMemcpy를 해주기 때문에 저 부분이 생략해도 되지 않나 싶어서 질문을 남깁니다. memcpy가 저번 강의 때, kernel 작업 완료 후에 이뤄진다고 말씀하셨던 부분이 있어서, cudaDeviceSynchronize() 을 이번 예제에서 빼도 상관 없지 않을까해서 질문드립니다. 좋은 강의 감사합니다.
-
미해결혼자 공부하는 C 언어 저자에게 배우는 C 언어의 모든 것
7.1 함수의 작성과 사용
설명해주신 내용중에 main 함수와 sum 함수에 모두 res라는 정수형 변수가 사용되는데 main 함수와 sum 함수에 있는 res를 다른걸로 봐야할까요 아니면 같은것으로 봐도 되나요? 다른 것으로 봐야한다면 두개의 변수를 다르게 표현해야하지 않나요?
-
해결됨홍정모의 따라하며 배우는 C언어
6-11 질문
안녕하세요! 다음 코드를 제 스스로 분석해봤는데, 정확한 분석이 맞는지 헷갈려서 질문드립니다.(1)Comma 연산자는 Assignment 연산자보다 서열이 낮은 것으로 알고 있습니다.1번 예시에서 콤마가 작동하는 시기는 z에 x의 값이 대입되고, y에 값 2가 대입된 뒤인가요?콤마 연산자는 왼쪽에서 오른쪽으로 계산을 하는데, 이미 대입연산자에 의해 각각 값이 대입된 변수 z와 y를 또 계산한다는 것이 잘 이해되지 않습니다.이 경우의 콤마 연산자의 계산이란 무엇인지 알려주시면 감사하겠습니다. (2)1번 예시와 2번 예시의 차이점은 무엇이 먼저 계산되느냐 일까요?즉 1번 예시에서는 x에 1이 대입되고, 그 값이 다시 x에 대입된 뒤, y에 2가 대입되고, 콤마 연산자가 작동한다면, 2번 예시에서는 x에 1이 대입되고, y에 2가 대입된 뒤, x의 값이 z에 대입되고, 콤마 연산자가 작동하는 건가요? 늘 친절한 답변 감사합니다.
-
해결됨홍정모의 따라하며 배우는 C언어
6-10. 어셈블리 질문!
안녕하세요. 강의에서 일반문과 그것의 축약문의 어셈블리 비교를 통해 효율성을 체크했습니다.그냥 보면 둘은 똑같아 보였는데, 자세히 보니 끝에서 두 자리가 다르더군요.이건 제 단계에서 크게 신경쓰지 않아도 되는 것 같은데, 그래도 궁금해서 질문드립니다.일반문과 축약문의 어셈블리가 완전 같지는 않은데, 저 정도는 효율성을 따지는데 있어 굳이 신경 쓰지 않아도 되는 건가요?
-
해결됨Windows 시스템 프로그래밍 - 기본
친화력 조절 (꼼수)에 관한 질문입니다.
안녕하세요 선생님 꼼수관련 질문이 2개 있습니다.1) 문제가 생긴 프로그램이 multi threading 때문에 context switching이 자주 일어나서 2시간만 지나면 고장나는 것인가요?2) 이를 하나의 프로세스로 고정시키면 여전히 context switching 이 일어나더라도 cpu core가 완전히 바뀌는게 아니라 좀 더 손쉬운 context switch가 일어나서 부하가 덜간다... 이런 느낌으로 이해하면 맞을까요?
-
해결됨Windows 시스템 프로그래밍 - 기본
GetString 에서 free하지 않고 가져오기만 했을 때는 동기화가 필요없나요?
강의에서 GetString 도 free(...) 를 호출하고 = NULL; 을 호출하기에 WRITE 요소가 있어 동기화가 필요하다 얘기해주셨는데 그렇다면 정말 sprintf_s 로 버퍼를 복사해오는 읽기만 있다면 GetString 함수를 동기화할 필요가 없나요? 두 Worker Thread에서 free(...) 를 호출한 이후에 Main Thread 에서 그 값을 버퍼로 복사해오는 읽기 작업을 한다면 제대로된 문자열을 복사해오지 않을 수 있을 것 문제가 발생할 수 있어보여서여A Thread는 WRITE / B Thread는 READ 만 했을 때 READ함수에는 동기화를 하지 않아도 되는지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C언어
6-4 강의 질문
안녕하세요. 관계 연산자 3번 예시를 공부하다 문자를 입력받으면 무한루프에 빠지는 정확한 이유가 뭔지 궁금해서 질문드립니다.변수 guess는 double type이기 때문에 문자를 받을 수 없는 것은 이해했습니다.그런데 왜 문자를 넣으면 무한루프에 빠지는지 모르겠습니다.디버깅을 해보니 guess는 처음 입력된 '3'이 계속 저장돼 있는데, 이것과 관련이 있는 걸까요?
-
해결됨홍정모의 따라하며 배우는 C언어
표현식의 자료형
안녕하세요. 5-11 형변환을 공부하다가 궁금한 점이 생겨 질문드립니다.13행에서 변수 i에, 강제로 float로 변환된 표현식 'f + 2 * c;'의 값이 저장되는 것으로 이해했습니다.cpu는 다른 자료형들을 연산할 수 없기 때문에 컴파일러가 표현식의 자료형을 동일하게 변환시키는 것은 이해됩니다.그런데 변할 때 피연산자들 중 상대적으로 더 큰 자료형을 갖는 피연산자에 맞춰 변환되는 것인가요?즉 13행의 경우는 실수 자료형을 갖는 변수 f가 정수인 '2 * c' 보다 더 큰 자료형이기 때문에 두 피연산자를 더한 값의 자료형이 float가 되는 것인가요?늘 좋은 답변 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
강의 4:29 0.01f 위에 커서를 올렸을 때
강의의 경우 (float)(0.009999999776F)라고 뜨는데왜 저는 그냥 단순하게 (flat)(0.01F)라고 뜰까요?비쥬얼스튜디오에서 따로 설정해야하는건가요?
-
해결됨홍정모의 따라하며 배우는 C언어
5-6. 괄호에 대한 질문
안녕하세요. 연산자의 우선순위에 대해 설명하실 때 강의에서 말하는 ()는 operator가 아니라 primary expression이라고 하셨습니다.강의의 ()는 operator가 아닌데, 어떻게 연산자 우선순위를 설명할 때 포함될 수 있는지 모르겠습니다. 늘 좋은 강의, 답변 감사합니다.
-
해결됨Windows 시스템 프로그래밍 - 기본
SECURITY_ATTRIBUTES 구조체 # 0:49 쯤 에 질문있습니다.
안녕하세요 선생님 질문이 있습니다.제가 자바의 intellij에 익숙해서 선생님이 하신것 처럼 _SECURITY_ATTRIBUTES#lpSecurityDescriptor 다음에 SECURITY_DESCRIPTOR 로 넘어가시는데 1번째 구조체에서 뭘 참조해서 넘어가신것인가요? 1번째 구조체는 CreateProcess를 타고 들어가서 찾을 수 있었는데 2번째 구조체는 ctrl+shift+f로 밖에 못찾겠습니다. 어떻게 연결되는것인가요?아니면 연결이 안되고 그냥 별도의 구조체로 존재한다 봐야하나요?