묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
디버깅에서 메모리창에서
예를 들어 문자열처리 강의중 예제에서 pszToken을 찾을때, pszToken을 치는경우랑 &pszToken을 치는경우가 다른데 정확히 어떤차이가 있나요? &pszToken는 주소를 찾는거같긴한데 둘의 차이가 헷갈립니다
-
해결됨독하게 시작하는 C 프로그래밍
배열 필수 실습문제
안녕하세요 강사님 다름이 아니라 필수 실습 문제를 풀다가 궁금한 점이 있어 질문드립니다. 다음 문제에서 저는 아래와 같이 코드를 작성했고 제 코드가 맞다고 생각했는데 #include <stdio.h>int main(void){ int nMin = 0; int aList[5] = {30, 40, 10, 50, 20}; for (int i = 0; i < 5; ++i) printf("%d ", aList[i]); putchar('\n'); for (int i = 0; i < 5; ++i) { if (aList[i] < aList[i + 1]) nMin = aList[i]; else nMin = aList[i + 1]; aList[i + 1] = aList[i]; aList[i] = nMin; } for (int i = 0; i <5; ++i) printf("%d\t", aList[i]); putchar('\n'); return 0;aList라는 변수가 Corrupted되었다는 메세지가 뜨는데 이게 무슨 말인지 알 수 있을까요? 감사합니다
-
해결됨홍정모의 따라하며 배우는 C언어
코드 작동이 잘 안되요
코드를 똑 같이 쓴거 같은데 출력이 제대로 안되요. 인터넷에 물어보니까 sizeof를 써야하던데 왜 써야 하는지 저는 왜 안되는지 잘 모르겠어요
-
해결됨Windows 시스템 프로그래밍 - 기본
강사님 파일입출력(Callback함수)와 관련하여 질문 드립니다.
강의 내용중 비동기 입출력 CALLBACK 함수 사용 부분에서 OVERLAPPED 구조체와 BUFFER 를 동적할당 해야 한다고 하셨는데.하지만 비동기 I/O를 하고 있는 스레드가 마지막 부분에서 SleepEx(1, TRUE) 로 대기하고 있습니다. 즉 스레드는 해당 CALL 함수 종료 후에도 계속 존재하기 때문에 스래드의 로컬변수로 선언해서 전달해도 CALLBACK 함수에서 사용하는데는 문제가 없는거 아닌지요? (이벤트로 처리하는 부분은 스레드 변수로 처리)왜 동적변수로 할당해야 하는지 이해가 되지 않아서요?실제로 제가 스레드내의 로컬 변수로 선언하고 동작 시켜도 정상적으로 동작을 해서요.
-
해결됨독하게 시작하는 C 프로그래밍
break와 중첩 Loop 예제
안녕하세요 강사님 break와 중첩 Loop 예제 문제 관련해서 질문이 있습니다아래 코드에서 a를 입력하면 i:0, a이 출력되고 i=1이 그 밑에 다시 한번 출력되는데 이것은 키보드로 a를 입력하고 enter 키를 입력할때 enter키도 입력으로 받아들여서 카운트가 하나 올라가서 그런 것 인가요?강의 시간때 말씀하신 개행문자 때문이라는게 이 뜻일까요?
-
해결됨Windows 시스템 프로그래밍 - 기본
dll 명시적 링크 오류 (원인 및 해결 방법이 필요 합니다)
DLL 명시적 링크에서 파일 오류가 생기는데 해결이 안됩니다.구글 검색이랑 여기저기 다 해봤는데 나오는 게 없어서 질문 합니다.일단 코드 입니다. 질문 내용은 코드 밑에 다가 적어 두겠습니다.DLL 파일 이름 = Dll1.dllmain 파일 이름 = dlltest.cpp경로는 강의와 동일 합니다. main() 파일#include <iostream>#include <Windows.h>#include <tchar.h>using namespace std;//void WINAPI DllTestFunction(int pParam);int main(){ HINSTANCE Hin = ::LoadLibraryA("..\\x64\\Debug\\Dll1.dll"); DWORD Error1 = ::GetLastError(); if (Hin == NULL) { printf("falied LOADLIBARARY"); } DWORD(WINAPI * dllfun)(void) = NULL; dllfun = (DWORD (WINAPI*)(void)) ::GetProcAddress(Hin, "DllFunction"); Error1 = ::GetLastError(); std::cout << Error1 << std::endl; dllfun(); if (dllfun == NULL) { std::cout<<"failed dllfun()"<<std::endl; wprintf(_T("falied dllfun()")); return 0; } std::cout << "ddd" << std::endl; FreeLibrary(Hin); return 0;} DLL 파일 #include "pch.h"#include<stdio.h>#include<Windows.h>#include<iostream>#include<tchar.h>#pragma onceextern "C" __declspec(dllexport) DWORD WINAPI DllFunction(void);DWORD WINAPI DllFunction(void);BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE;}DWORD WINAPI DllFunction(void){ wprintf(_T("DLL TEST: DllTestFunction(param:)")); std::cout << "failed DLLfun dllfun()" << std::endl; return 0;} 현재 증상dllfun(GetProcAddress로 얻은 함수 주소)가 자꾸 NULL로 나와서 실행이 안됩니다. 현재까지 확인된 내용 Hin(LoadLibraryA) 모듈 핸들을 얻었는 데 NULL은 안 뜨나 디버깅을 했더니 This Program cannot be run in Dos mode 라고 나옵니다.dllfun(GetProcAddress로 얻은 함수 주소)은 NULL이 확실합니다. 밑에 코드 몇번 변경하면서 확인 됬습니다.GetLastError()을 dllfun()에 127(지정된 프로시저를 찾을 수 없습니다."라는 오류가 생성됩니다.)이 나옵니다 현재까지 시도경로 조정 절대경로, 상대 경로 다해봤습니다.함수 이름 변경extern "C" ~ 이것도 파일 양쪽에 다 넣어보고 한쪽에도 넣어보고 했습니다.구글 검색해도 원하는 내용이 안나옵니다.Hin의 자료 형을 HMODULE, HINSTANCE 다해봤습니다.환경변수 조정v3에 걸려서 꺼보고 실행exe 파일위치를 기준으로 경로 조정빌드도 해봤는데 안됩니다.대략 이 정도 입니다.원인이랑 해결방법이 궁금 합니다.
-
해결됨독하게 시작하는 C 프로그래밍
섹션 12[필수 실습 문제] '*' 출력 놀이 응용
안녕하세요 강사님 섹션 12 [필수 실습 문제] '*' 출력 놀이 응용 관련해서 질문이 있습니다 강사님께서는 if 문을 사용하셔서 문제를 해결하셨는데저는 for문만 사용했습니다수업시간에 강사님께서 말씀하신 puts("*")만 사용해서 연속으로 별을 찍는 것이 아니고 저만의 논리가 있으면 프로그래밍에서 방법은 상관없는 건가요? 특정한 정답이 있는건지 궁금합니다.
-
해결됨Windows 시스템 프로그래밍 - 기본
static 영역의 rw 가능한 곳은 어떤 데이터가 담기는지 궁금합니다.
안녕하세요! 프로세스 파트 마지막 강의를 듣다가 궁금한 점이 있어 질문 남겨봅니다!static 파트는 r 와 rw가 가능한 곳으로 나뉜다고 말씀해주셨고 보통 r만 가능한 영역은 문자열이 담기게 된다고 이해했습니다. rw 가 가능한 영역은 어떤 데이터기 담기는 지 알 수 있을끼요??
-
미해결홍정모의 따라하며 배우는 C언어
isPrime
if(isPrime)이라고만 했을 때의 작동 원리가 궁금합니다. for문에서 해당이 안 되면 true가 계속 유지가 되는 건데 if(isPrime)이라고 하면 true라고 기본적으로 세팅이 된 건가요?
-
해결됨독하게 시작하는 C 프로그래밍
디버그로 인한 궁금증으로 질문드립니다.
안녕하세요 수업 잘 듣고 있습니다. c언어를 처음 배워서 모르는 것이 많아서 이상한 질문이라도 양해 부탁 드리겠습니다.c 부터 c++까지 4가지 강의를 쭉 들어보려고 구매를 했는데 열심히 해보겠습니다. 독하게 c 필수 실습 문제 2번째 것을 보며 디버그를 하다가 궁금증이 생겨서 질문 드립니다.제가 질문을 두서 없이 했습니다. 양해바랍니다ㅜ그리고 만일 질문의 내용이 수업을 따라가다 보면 알 수 있는 내용이라면 질문에 대한 답은 안 해주시고 그렇게만 써주시면 될 것 같습니다.첫 번째 char형 배열은 선생님 말씀처럼 잘 확인을 했는데두 번째 int형 변수는 저런 식으로 나와서 잘 모르겠습니다.메모리를 가리키는 주소 자체?도 메모리 인가요? 다만 위 사진에서는 주소 자체 메모리는 안보이고 그 주소가 가리키는 메모리만 보여줘서 주소 자체 메모리는 안 보일 뿐인가요?그렇게 되면 위 그림에서 0x00....43과 대응되는 ??은 못 쓰는 메모리가 되는 것인가요? 주소 자체?도 메모리라면 그곳에는 주소 뿐 아니라 정수도 저장할 수 있는 것 처럼 보이는데 맞나요? 주소 부분과 정수 부분이 구분 되어있는 건가요? 아니면 정수 부분도 주소로 쓰일 수 있는 건가요?위 사진에서 제가 67을 썼더니 주소가 0x00..43으로 나왔고 그것을 가리키는 메모리는 ??이 나왔습니다. 이것은 10진 수를 16진수로 바꾼 주소 자체에 그대로 매칭 시켜서 저장했다는 소리 같은데, 그러면 모든 정수는 이렇게 매칭 시켜서 중복되면 그 하나를 돌려 쓰게 되는 것인가요?뭔가 머리가 복잡해져서 그대로 질문을 했지만.... 말씀해주셔도 모를 것 같고 복잡할 것 같습니다.지금 단계에서는 그냥 넘어가고 뒤에 배우다 보면 다 알려주시는 부분인가요??아니면 따로 알아야 할까요??
-
해결됨독하게 시작하는 C 프로그래밍
강의에서 CON으로 콘솔을 여는게 참 신기한데요.CON의 경로는 어디일까요?
선생님께서 전강의에서 가르쳐주신 파일의 현재경로(프로젝트파일이 있는 폴더)로 con파일을 연거 같은데 그 폴더에는 con이 없네요 ㅠㅠ 요 파일은 별도로 관리되는 파일이라서 경로를 넣을 필요가 없는건가요?
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
08. 응용 문법 활용(5)_프로그래밍[기출] 23분 문제 질문
2021년 3회차 1번문제에서 heap 주소가 200이라고 하셨는데 이 부분에서 왜 200인지에 관한 설명이 나와있지 않아서 질문 드립니다!
-
해결됨독하게 시작하는 C 프로그래밍
섹션 12 반복문 필수 실습 문제 별 찍기
안녕하세요 강사님섹션 12 반복문 필수 실습 문제 별 찍기 관련해서 질문있습니다.변수 i=0; 초기화를 맨위나 while문 바로 위에 선언하면 실행이 잘되는데 변수 i=0; 초기화를 맨위나 while문 바로 위에 둘 다 선언하면 if 문까지만 실행이되고 그 아래 while문은 실행되지 않을까요? 그런데 또 맨위쪽과 while문 바로 위 모두 변수를 한번씩 선언하고 코드 실행 후 맨위나 while문 바로 위에 둘 다 선언했더니 정상적으로 작동이 됩니다 마지막으로 원래 return 0; 을 main함수 맨 밑에만 주로 썼는데 강사님께서 이 문제에서는 return 0;을 if 문 끝날때 쯤에도 한번 쓰셨는데 이유를 알 수 있을까요?솔직히 return 0;의 의미를 0의 값을 반환해서 최종적으로 함수를 실행되게 한다는 것 빼고 확실하게 모르겠습니다.
-
해결됨윤파고의 정보처리기사 DB/프로그래밍 All-In-One
23분52초 문제에 질문드립니다.
구글링도 해봤는데 좀 애매해서 후치연산자를 좀 엄밀하게 설명해주셨으면 좋겠어요. 해당 문제a += ++a % b++ ? c*d : b/c에서b/c를 계산 할때 후치연산자를 먼저 적용하고 연산하시던데해당 줄의 전부를 모두 계산하고 최종 a에 대입까지 완료하고 나서야 후치연산자를 계산하는게 아닌가요?구글링으로 찾아보니 컴파일러에 따라 연산 구조가 달라 순서도 다르다고 하던데정확히 연산 우선순위에서 어떤시점에 후지연산이 적용 되는건지 알려주세요.
-
해결됨독하게 시작하는 C 프로그래밍
gets_s 함수 형식문자
예제에서 name의 datatype을 char로 지정하셨는데 마지막에 printf문에서 출력할 때 형식 문자를 %c가 아니라 %s로 하시더라고요. 이 이유가 gets_s함수 때문인가요?? 만약에 맞다면 gets_s함수는 문자에서 문자열로 바꿔주는 역할을 하나요? 아니면 배열을 써서 바뀐 건가요..??
-
해결됨독하게 시작하는 C 프로그래밍
주소값을 저장하는 공간에 8Byte가 할당되는 이유
안녕하세요 선생님 질문이 있습니다. 포인터 변수에 할당되는 공간의 크기가 8Byte인것이 64bit 프로세서를 사용해서 그런것이라면32bit 프로세서에서는 포인터 변수에 할당되는 공간의 크기가 4Byte라고 이해해도 될까요?감사합니다.
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
Thread Block 개수에 제한이 있나요?
안녕하세요 저번 Vector Addition 수업에서는 256M(256 x 1024 x 1024)개의 연산을 수행하기 위해서<<<256*1024, 1024>>>로 커널을 런치하여 Block의 개수에는 제한이 없는 것 처럼 보였는데,15-5강의에서는 SM의 Thread Block은 32개 까지 가능이라고 하셔서 헷갈리는데두 개의 Thread Block 개념이 다른 것인지 궁금합니다.
-
해결됨CUDA 프로그래밍 (2) - C/C++/GPU 병렬 컴퓨팅 - 벡터 vector 더하기
Warp를 동시에 돌린다는 말이 이해가 가지 않습니다.
안녕하세요. 먼저 좋은 CUDA 강의를 제공해주셔서 감사합니다. 다름이 아니라 15-4 강의에서 Warp를 동시에 돌린다는 말에 질문이 있습니다. Warp 스케줄링을 저는 아래와 같이 비교하여 이해하였습니다.CPU: Core -> 여러개의 쓰레드GPU: SM -> 여러개의 Warp 강의 내용처럼, CUDA에서 Warp별로 스케줄링을 관리를 한다면 모든 SP의 Clock들이 같은 Instruction을 수행(SM내 SP들의 Clock들은 Sync가 맞음)하여야 Warp단위로 스케줄링이 가능할 것 같은데, 제 생각이 맞는지 궁금합니다. 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
4.3 강의 hello hi 출력 부분 오류
10분 36초에서 다음 코드를 실행시 "오류 C2075 str2 초기화에는 중괄호로 묶인 이니셜라이저 목록이 필요합니다."하면서 오류가 납니다.. 구글하고 네이버 서치하고 이거저거 다해봤는데 도저히 모르겠어요..
-
미해결홍정모의 따라하며 배우는 C언어
4.3 강의 hello hi 출력 부분 오류
#include <stdio.h> int main() { /*int a = 0; int int_arr[10] = { 0,1,2,3,4,5,6,7,8,9 }; printf("%i %i %i\n", int_arr[0], int_arr[1], int_arr[9]);*/ //printf("%i\n", int_arr[10000]); char c = 'a'; char str1[10] = "Hello"; // null character char str2[10] = ('H', 'i'); printf("%c\n", c); printf("%s\n", str1); printf("%s\n", str2); /*printf("%hhi %hhi %hhi %hhi %hhi\n", str2[0], str2[1], str2[2], str2[3], str2[4]);*/ //char str3[10] = "Hello, World", // array size is not enough //char str3[20] = "Hello, \0World", //printf("%s\n", str3); return 0; }