묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
표준입출력 강의를 마치고 질문을 드립니다
printf 함수 같은 경우에는 데이터 Size를 정하지 않고, 어디에 저장 될지를 지정 하지도 않는데,Printf 함수는_getch() or_getche() 와같은 Non buffered I/O같은 방식인가요???
-
해결됨독하게 시작하는 C 프로그래밍
독하게 시작하는 C프로그래밍 교재
안녕하세요독하게 시작하는 C프로그래밍 강의를 구매하고 수강하려하는데 교재가 모두 절판되었네요따로 구할 수 있는 방법이 없을까요?중고 서적으로 보니 가격이 6만원이 넘더라구요...
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
헤드노드 정의
헤드노드 정의 할 때 pNext값에 NULL이라고 적지 않아도자동으로 NULL로 초기화가 되는 건가요?
-
해결됨독하게 되새기는 C 프로그래밍
접근권한과 위변조
실제 위변조 해킹을 할 때 여러방법이 있겠지만, 초기에 접근 권한을 얻어서 위변조를 하는 방식도 있었을까요? Win OS상에서 Hxd 프로그램을 실행하고Linux에서 작성한 bin파일을 가져와서 위변조라는 것을 하려고 하는데 수정이 불가능 했습니다.이에 따른 3가지 가설로linux상에서 bin file에 접근 권한을 chmod를 통해 주지 않았기 때문에 수정이 불가능프로그램을 저장할 때 file을 저장 시킨 system 단은 linux OS이고, binary file을 실행한 HxD프로그램이 win Os라서 불가능 읽기 전용 파일이라서? 2번은 file이 하드디스크에 물리적으로 저장해서 부르는 데는 문제가 없을 것이라 생각했습니다.3번은 HxD가 -rw-r--r-- 1 root root 256 Nov 12 16:34 rdata.bin에서 읽기 전용 파일이기 때문이라고 생각했는데, HxD는 에디터에서 건들 수 없는 것이 말이 되나 싶었습니다..1번이 문제인 줄 알고 sudo chmod 777 bin파일이름을 통해 권한을 부여하니 위변조가 가능했음을 알게 되었습니다.그렇다면 여기서 궁금한 점은 1번에 접근 권한을 허락만 하면 (다른 컴퓨터에 원격으로 제어를 하고 root사용자의 비밀번호를 얻어서) 해킹이 되지 않을까라는 생각이 들어서 질문을 드렸습니다. 너무 궁금해서 수업과는 약간 결이 다른 질문인 점은 죄송합니다..
-
미해결홍정모의 따라하며 배우는 C언어
gcc 오류 이유
왜 오류가 난건가요..?
-
미해결홍정모의 따라하며 배우는 C언어
7.2강 06:06 질문이 있습니다.
char ch; ch = getchar(); // 1) while (ch != '\n') { putchar(ch); // 2) ch = getchar(); }; getchar와 putchar의 세부 동작 방식이 궁금해서 여쭤봅니다..IBM에서는 getchar 함수의 역할을 현재 스트림 위치의 문자 하나를 읽고 다음 스트림의 위치로 이동한다고 설명되어있는데 스트림의 위치라는게 버퍼의 인덱스를 말하는건가요??https://www.ibm.com/docs/ko/i/7.3?topic=functions-getc-getchar-read-character getchar는 입력 버퍼가 비어있을 때는 입력을 받지만, 입력 버퍼가 차있을 때는 입력 버퍼의 현재 위치의 값을 반환하고 다음 위치로 이동하는 함수라고 이해하면 될까요?? 디버거로 putchar의 동작을 확인했을 때는 입력 버퍼에서 맨 앞의 글자를 한 글자씩 출력하는 것 같은데 그러면 putchar는 버퍼를 사용하는 방식이 아닌건가요?? 이클립스에서는 Ctrl+우클릭 후 Open Implementation을 선택하면 라이브러리 함수가 동작하는 코드를 직접 확인할 수 있는 것 같은데 비주얼 스튜디오에서도 확인하는 방법이 있을까요..??
-
해결됨독하게 시작하는 C 프로그래밍
섹션 13 다차원 배열 실습 문제 중
첫번째 문제 혼자 풀어봤는데 아무리 규칙을 찾으려 해도 이렇게 밖에 안짜지는데요,, 혼자 풀수 있어야 한다고 하셔서 혼자 많이 고민해봤는데 좀 더 좋은 방식을 찾으려고 해도 제 머리로는 도저히 안짜집니다 ㅠㅠ aList[2][3] = aList[0][3] + aList[1][3]; 특히 이 부분이 너무 그냥 막 짠 코드 같아 보이는데 이게 맞는 방식인지 여쭤봅니다.. #include <stdio.h> int main(void) { int aList[3][4] = { {10,20,30}, {40,50,60}, }; for (int i = 0; i < 2; ++i) { for (int j = 0; j < 3; ++j) { aList[i][3] += aList[i][j]; aList[2][j] += aList[i][j]; aList[2][3] = aList[0][3] + aList[1][3]; } } for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { printf("%d\t", aList[i][j]); } putchar('\n'); } return 0; }
-
해결됨독하게 시작하는 C 프로그래밍
strpbrk 관련 예시 함수
안녕하세요! strpbrk 설명해주시며 보여주셨던 예제 관련해서 질문이 있습니다. 원본 예제에는 문자열을 찾아서 주소, 인덱스, 문자를 출력하는 코드가 아래와 같이 되어 있었습니다. while ((pszStart = strpbrk(pszStart, szSet)) != NULL) { printf("[%p] Index: %lld, %c\n", pszStart, pszStart - szBuffer, *pszStart); pszStart++; }그런데 이 코드를 실행시키면 위와 같이 인덱스 값과 문자가 제대로 출력되지 않았습니다. 메모리 상 pszStart와 szBuffer값의 차이는 인덱스 값과 같았습니다. 그래서 아래와 같이 %lld 대신 %d 로 형식지정자를 바꾸니 제대로 출력이 되었습니다. while ((pszStart = strpbrk(pszStart, szSet)) != NULL) { printf("[%p] Index: %d, %c\n", pszStart, pszStart - szBuffer, *pszStart); pszStart++; }일단 먼저 제가 코드를 잘못 실행해서 이런 결과가 나온 건지 궁금합니다. 그리고 여기서 형식 지정자는 단지 값의 출력 형식을 바꿔주는 것으로 알고 있고, %d와 %lld는 10진수 정수 형식으로 출력한다는 점은 같은데 왜 다른 값이 출력되었는지 궁금하고, 형식 지정자가 %lld일 때 왜 뒤에 출력되는 문자 *pszStart의 값까지 잘못 출력되는지 궁금합니다. 항상 좋은 강의 만들어 주셔서 감사합니다!
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
섹션4 범위검색 강의 질문있어요.
올려주신 자료 04_RangeSearch02에서 void SearchByAge(void) 함수 마지막 부분 질문있습니다.SearchByAgeRange함수에서 동적할당한 주소를 리턴하고void **pResult로 받았습니다. void** pResult = SearchByAgeRange(min, max, &cnt);USERDATA* pTmp = NULL;for (int i = 0; i < cnt; ++i){ pTmp = (USERDATA*)pResult[i]; printf("%d, %s, %s\n", pTmp->age, pTmp->name, pTmp->phone);}free(pResult); <----요부분입니다.이제 해제를 해줘야 하는데요free(pResult)를 한 번에 해도 괜찮은건가요?아니면 for문 돌릴 때 free(pResult[i])로 해야하나요?
-
해결됨독하게 시작하는 C 프로그래밍
변수 초기화 질문
안녕하세요 최호성 개발자님 질문에 앞서 좋은 강의 제공해주셔서 감사하다는 이야기드립니다 🙂 64bit 체제에서 long int로 변수 선언 시 메모리가 8byte가 되는 것으로 알고 있고, unsigned long int ulnewData = 1UL; 로 변수를 초기화 했을 때, 01 00 00 00 16 20 09 6b라고 메모리에 초기화되었는데 01 00 00 00 00 00 00 00 으로 메모리에 초기화되어야 하는게 아닌가요? 그림의 메모리 주소인 48FC78FB29 ~ 48FC78FB2B까지 0으로 초기화되어야하는게 아닌가 싶어서 질문드립니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
g_pHeadNode
g_pHeadNode는 왜 주솟값을null로 갖고있나요?
-
해결됨홍정모의 따라하며 배우는 C언어
6.17강 14:39분 평균을 구하는 예제 질문이 있습니다.
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #define SIZE 5 int main(void) { int numbers[SIZE]; int sum = 0; int i; printf("Enter %d numbers : ", SIZE); for (i = 0; i < SIZE; ++i) { scanf("%d", &numbers[i]); // &( numbers[i] ) : 배열 인덱스 역참조 연산 후 주소 연산 } for (i = 0; i < SIZE; ++i) { sum += numbers[i]; } printf("Sum : %d\n", sum); // 첫 번째 평균 출력식 Average 1) double average = sum / SIZE; printf("Average 1) : %lf\n", average); // 두 번째 평균 출력식 Average 2) printf("Average 2) : %lf\n", (sum / SIZE)); return 0; }위 코드에서 첫 번째 평균 출력식 Average 1)는 정상적으로 평균 3.000000을 잘 출력하는데두 번째 평균 출력식 Average 2)는 0이 출력이 됩니다..혹시 print 함수의 인수로 표현식이 들어가면 안되는걸까요??
-
해결됨독하게 시작하는 C 프로그래밍
argc, argv
안녕하세요. 함수 매개변수 중에 argc, argv가 무엇인지 궁금합니다!
-
해결됨독하게 시작하는 C 프로그래밍
scanf_s상에서 7/2의 경우
산술연산자 영상 8분40초에서scanf_s("%d",&x);에 대해 7/2를 입력하셨는데 그 후에 결과를 보니 7로만 인식이 되어 7/3=2, 7%3=1 의 결과가 나온 것을 확인하였습니다.혹시 scanf_s가 7/2를 3으로 인식하지 않고 7로 인식하는 이유가 무엇인가요? 슬래시(/)가 scanf_s에서는 인식하지 않는것인가요?
-
해결됨홍정모의 따라하며 배우는 C언어
fgets() 함수 질문
안녕하세요.11-4 강의 듣고 궁금한 점이 있어 질문드립니다. 콘솔창에 문자를 입력할 때 eof 혹은 줄바꿈 말고 4글자를 입력하면 프로그램이 종료되는데, 이는 어떤 원리에서 종료되는 걸까요?
-
해결됨독하게 시작하는 C 프로그래밍
scanf_s 연속 사용에 대해 질문 있습니다.
위 문제와 같이 scanf_s를 연속으로 사용할 때 궁금한 점이 있습니다.먼저 첫번째 입력으로 1을 입력하면 버퍼에 [1][\n] 이렇게 입력되고 1이 빠져나가면 [\n]이 버퍼에 남게 되는 걸로 이해하고 있습니다. 그렇다면 두번째 입력 때 [\n] [2] [\n] 이렇게 입력이 되는건가요?또한 만일 엔터가 맨 앞에 있다면 왜 scanf_s를 연속으로 쓸 때는 스킵이 안되는지와 get_s와 같이 쓰면 스킵이 되는지가 궁금합니다..!
-
해결됨독하게 시작하는 C 프로그래밍
getch() / getche() underbar 없이도 실행이 되는데??
안녕하세요 엉뚱한 질문일수도있는데,#include <conio.h> 를 입력 안하고 빌드하고 실행했을때_getch() / _getche() 앞에 underbar 없이도실행이 되는데, 제가 잘못한건가요?#include <conio.h> 입력했을때 _getch() underbar를 입력안하면 빌드 오류가 납니다.
-
해결됨독하게 시작하는 C 프로그래밍
섹션 9, 표준 입/출력 관련 질문입니다!
널널한 개발자님! 항상 좋은 강의 감사드립니다ㅎㅎ다름아니라 섹션 9의 문자, 정수 입력과 개행문자 제거 부분에서 풀리지 않는 부분이 있어 이렇게 질문을 올리게 되었습니다.강의 중 24:28 쯤, "퍼올려도 N이 남는다"라는 부분이 이해가 잘 가지 않는데요!제가 이해한 바로는 scanf_s 함수에서 %d\n의 형태로 데이터를 받기 때문에 입력 버퍼 내부에 개행문자도 함께 삭제됐으므로 다음 개행 문자를 입력받을 때까지 사용자 입력을 계속 요청하는 것으로 알고 있었는데, 엔터를 쳐도 개행문자를 인식했음에도 계속해서 개행문자가 남는 이유에 대해서 알고 싶습니다!다시한번 감사드리고, 추운 날씨 몸 건강도 잘 챙기시기를 바라겠습니다. 화이팅입니다!
-
해결됨독하게 시작하는 C 프로그래밍
강의자료 관련 질문입니다.
항상 좋은 수업 감사합니다. 강의자료 관련해서 질문이 있습니다.강의를 듣다보니 강의자료를 사전에 작성해보고 수업듣고 싶은데 강의자료를 못찾겠습니다ㅠㅠ이게 저만 못찾는 건지 커리큘럼 옆에 구름모양으로 있다는데 안보이네요.원래 강의자료가 없는건지 제가 못찾는 건지 궁금합니다.백문이 불여일타라고 연습해보고 싶어요!!!
-
해결됨홍정모의 따라하며 배우는 C언어
unsigned가 없는 float에 부호가 0인 이유
16:50을 보면 실수에는 unsigned가 없기 때문에 무조건 부호 비트가 들어간다는 설명이 있습니다. unsigned가 양수를 나타내는 것, signed가 음수를 나타내는 것으로 알고 있습니다. 그렇다면 음수인 1이 부호비트에 들어가야 하는 것 아닌가요?부호비트에 0이 들어가는 건 1. 2의 보수법 표현 때문아니면 unsigned int에 대한 자료형이 없을 뿐 unsigned int에 대해 저런 식으로 표기하기 때문 1,2 중 어떤 case인지, 아님 기타의 case 때문인지 궁금합니다.