정수 질문
미해결
홍정모의 따라하며 배우는 C언어
3.5 정수와 실수 12:09 화면 캡처 질문입니다 각 칸에 0과 1이 들어가야 되는 이유랑 왜 0101 1110인지 궁금합니다 어떤건 0이고 어떤건 1인데 어떻게 구분하는건가요?
- c
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
홍정모의 따라하며 배우는 C언어
3.5 정수와 실수 12:09 화면 캡처 질문입니다 각 칸에 0과 1이 들어가야 되는 이유랑 왜 0101 1110인지 궁금합니다 어떤건 0이고 어떤건 1인데 어떻게 구분하는건가요?
미해결
홍정모의 따라하며 배우는 C언어
안녕하세요 인프런은 처음인데 따배C강의 무제한이면 언제든지 계속 들을수있는건지 궁금합니다. 혹시 아는내용은 스킵해도 수료증발급가능한지도 궁금합니다. 감사합니다.
해결됨
홍정모의 따라하며 배우는 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 프로그래밍
안녕하세요 유투브에서 알게 되어서 강의구매까지 한 전진호입니다. 메모리 화면에서 64bit를 설명하시고, 16바이트를 계산하셨는데, 저 바이트 코드가 왜 적힌 것이고, 어떤 의미인지 궁금합니다.
해결됨
독하게 시작하는 C 프로그래밍
비주얼 스튜디오 클래스 뷰 설정에서 여러 프로젝트 항목들은 어떻게해야 각종 예제들을 묶은 경우와 같이 리스트가 생성 되는지 궁금합니다.
미해결
홍정모의 따라하며 배우는 C언어
scanf가 작동하는 방식이 %d가 들어있다면 정수를 받겠다고 판단을 해서 1.23456이 들어와도 1까지만 받아들이는 것이고 %lf인 경우에는 실수 형태를 받겠다고 판단을 해서 1.23456을 1.23456까지 다 받아들인다는 건가요?
미해결
홍정모의 따라하며 배우는 C언어
int* ptr = arr; printf("%p %p", ptr, arr); 이럴 때 ptr은 arr주소로 가는 것이라 ptr의 주소는 따로 있다고 생각을 했거든요. 그래서 둘의 주소값이 다르다고 생각했는데 왜 같게 나오는 건가요.. 계속 이어서 수강했는데, 어디 강의로 가야 이에 대한 설명을 들을 수 있을까요, 아니면 여기서 설명해주시면 감사하겠습니다.
미해결
홍정모의 따라하며 배우는 C언어
강의 3분08초를 보면 c++같은 경우에는 바이너리 넘버(2진수표현법)를 코딩할 때 직접 사용할 수 있지만 c언어같은 경우 불가능하다고 하셨는데 숫자앞에 0b를 붙여서 표현가능하지 않나요? ex) 0b00000001 이렇게 가능하지 않나요? 제가 다르게 이해한 걸까요? 감사합니다.
미해결
홍정모의 따라하며 배우는 C언어
안녕하세요. 이중포인터에 const를 어느 위치에 붙이냐에 따라 고정되는 값에서 차이가 생기는데, 제가 그 차이를 제대로 이해한 것이 맞는지 몰라 질문드립니다. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int x = 20; int* p1 = &x; const int* const * pp2 = &p1; const int** const pp2 = &p1; return 0; } 이런 코드가 있다고 할 때, const int* const * pp2 = &p1; 코드에서 고정된 값은 pp2가 한 번 indirection 한 주소값, 즉 p1자체의 값과 x의 값이다. const int** const pp2 = &p1; 코드에서 고정된 값은 pp2 자체의 주소값과 x의 값이다. 이렇게 이해했는데, 맞을까요?? 늘 친절한 답변 감사합니다.
미해결
홍정모의 따라하며 배우는 C언어
#include <stdio.h> #include <stdlib.h> struct kid { char name[100]; int height; }; int compare(const void* first, const void* second) { if (((struct kid*)first)->height > ((struct kid*)second)->height) return 1; else if (((struct kid*)first)->height < ((struct kid*)second)->height) return -1; else return 0; } int main() { struct kid my_friends[] = { "Jack Jack", 40, "Geenie", 300, "Aladdin", 170, "Piona", 150 }; const int n = sizeof(my_friends) / sizeof(struct kid); qsort(my_friends, n, sizeof(struct kid), compare); for (int i = 0; i < n; i++) printf("%s \t%d\n", my_friends[i].name, my_friends[i].height); return 0; } 위는 저의 코드입니다. 강의 5분 45초를 보면 printf()함수에 \t를 통해서 간격을 조정해주는데 교수님의 경우 숫자가 같은 위치에서 시작하는데 저는 왜 40 혼자 멀리 떨어져있을까요? 또 \t를 검색해보면 Tab키와 같이 일정한 간격을 띄움 라고 나와있는데 일정한 간격을 어디를 기준으로 띄우는 건가요? "Jack Jack"의 경우 공백 포함 9글자고 "Geenie의 경우 6글자인데 강의에서 "40", "300"은 같은 위치에서 시작함에 의문이 생깁니다.
미해결
홍정모의 따라하며 배우는 C언어
디버깅 > 일반 에서 주소 수준 디버깅 사용 을 선택했는데도 디버그 >창 > 메모리가 있어야 하는데 메모리가 안뜨는데 왜 이런 건가요?
미해결
홍정모의 따라하며 배우는 C언어
제가 알기로 값을 따로 초기화 안할경우 무작위의 쓰레기값이 들어가는게 아니라, 그냥 16진수 cccccccc 가 들어가는걸로 알고 있습니다.
해결됨
독하게 되새기는 C 프로그래밍
연결리스트를 보면서 만든적은 있으나 머리속에서 참고자 없이 만든적은 없네요 구매는 했는데 자료구조 수업 듣고 와야겠네요. 혹시 수업이 따로 있을까요?
해결됨
독하게 되새기는 C 프로그래밍
Enter, Leave로 동기화 후 메인 쓰레드 루프 탈출을 위해 q를 입력했을 때 간헐적으로 아래와 같은 에러가 발생하였습니다 요거.. 선생님께 여쭤보려다가 문득 원인을 찾았습니다 혹시 저와 같은 에러를 겪으신 분들을 위해 정리를 하자면 아래와 같습니다 메인 쓰레드 루프 탈출 까지는 정상적으로 수행됩니다 다만, DeleteCriticalSection 함수 호출 후 return 코드를 호출하기 전 찰나의 순간에 set 또는 reset 워커 쓰레드에서 EnterCriticalSection을 호출하여 예외가 발생합니다 즉, DeleteCriticalSection과 return의 코드 호출은 원자적이지 않기 때문에 두 함수가 수행되는 중간에 다른 워커 쓰레드에서 EnterCriticalSection 함수를 호출하는 경우인데요 이는, Delete돼서 존재하지 않는 임계영역에 Enter를 시도하기 때문입니다
미해결
홍정모의 따라하며 배우는 C언어
피피티에서 int i = 34567; 이 왜 10000111 | 00000111로 저장되는지 궁금합니다
미해결
홍정모의 따라하며 배우는 C언어
visual studio code 에서 Shell 검색을 하였을 때 다음과 같이 shell관련 항목이 나오지 않습니다. 사전에 mingw도 설치하였고 path도 설정하였습니다. 해결 방법을 알고 싶습니다.
해결됨
독하게 되새기는 C 프로그래밍
항상 좋은 강의 감사합니다 ~!! 두 가지 정도 여쭤볼 게 있습니다 실시간 감시 엔진 File System과 Driver 사이 계층에 실시간 감시 엔진을 넣을 수 있는 공간이 있다고 하셨는데 그렇다면 그런 엔진은 V3, 알약 같은 백신 프로그램에서 제공해주나요? 아니면 OS단에서 기본적으로 제공해주나요? 만약 OS단에서 제공해준다면 감시 결과에 접근할 수 있는 인터페이스를 열어주고 유저모드의 백신 프로그램이 그 인터페이스로 감시 결과를 가져오나요? 삭제 삭제 시 FAT에서 Delete 필드에 마킹되는 것은 이해하였습니다 그런데 굳이 파일명의 첫 글자 까지도 다른 글자로 변경하는 이유는 무엇인가요? 강의 잘 보고 있습니다 감사합니다 ~
미해결
HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
강의 그대로 세팅 다 하고 난 후 강의처럼 OK버튼이 없어 오른쪽 상단의 GENERATE CODE를 눌렀습니다. 이런 메세지 창이 뜨는데 어떻게 해야하나요??GENERATE CODE 버튼을 누르는게 아닌가요?
미해결
홍정모의 따라하며 배우는 C언어
#include <stdio.h> #include <stdlib.h> struct data { int a; char str[20]; }; int main(void) { struct data data1 = { 1,"hello" }; struct data data2 = data1; printf("%s", data2.str); return 0; } 강의 7:40를 보면 구조체 변수에 다른 구조체 변수를 대입하면 그 안의 값이 똑같이 복사가 가능한데, 문자열도 복사가 가능한지 궁금해서 위처럼 실행시켜보니까 가능하네요. 이것은 마치 data1.str = "hello"; data2.str = data1.str; 인 것 같은데. 제가 알기론 문자열은 대입을 통해서 복사 하는 것이 불가능한 것으로 알고 있는 구조체에서는 가능한건가요? 미흡한 질문 죄송합니다.
미해결
HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌
소스 파일이 없어요