dest = "Start something"; // Error 여기서 에러가 생기는 이유를 잘 모르겠어서 찾아보니 같은 질문이 있길래 답변을 봤습니다. https://www.inflearn.com/questions/684074 답변을 보고 컴파일러가 안 해주도록 만들어진 거고 그 이유는 런타임에 내용을 바꾸고 싶다면 한 글자씩 바꾸는 방식으로 사용하도록 의도적으로 그렇게 정해 놨기 때문이라고 답변해주신 건 이해가 됬습니다. 그런데 그렇다고 안해주는 이유가 아예 없는 것은 아닌데 "Start something" 같은 문자열은 컴파일 할 때 프로그램에 탑재됩니다 라는 말씀이 이해가 잘 안됩니다. 문자열이 컴파일할 때 프로그램에 탑재되는 거랑 컴파일 타임이 아니라 런타임에 내용을 바꾸고 싶다면 한 글자씩 바꾸라고 의도적으로 정해 놓은 거랑 무슨 상관인지 모르겠습니다. 답변 항상 감사합니다.
int main() { int c = 0; char z; while (1) { printf("Enter the letter of your choice : \na. averngers b. beep\nc. count q. quit\n"); z = getchar(); if (z == 'a') printf("Avengers assemble!\n"); else if (z == 'b') printf("\a"); else if (z == 'c') { printf("Enter an integer : "); scanf("%d", &c); for (int i = 1; c >= i; ++i) printf("%d\n", i); } else if (z == 'q') break; } return 0; } 왜 질문이 2번씩 나올까요
강사님 항상 좋은 강의 제공해주셔서 정말 감사합니다 if문 중첩 부분 필 수 실습 문제 첫번째 문제에 관하여 질문 드릴 것이 있습니다. 저 같은 경우는 아래와 같이 우선 20세 이상이냐 여부를 기준으로 2분할 하면서 들어갔는데, 답은 잘 나오는것 같습니다. 근데 혹시나 제가 잘못 생각한 부분이 있을지 강사님께 확인받고자 질문글 올립니다. 새해 복 많이 받으세요! 감사합니다.
안녕하세요, 문자열(문자형 배열)을 정의할때, 문자열 리터럴의 크기와 문자형 배열의 size가 같으면 null character가 붙지 않는 것 같은데 이 경우 왜 붙지 않는지 궁금합니다. 그림 처럼 디버거로 찍어보고 null character가 붙지 않는다고 판단했습니다. 그리고 추가로, 출력했을 때 하기 그림처럼 이상한 한자가 나오는 이유는 printf 가 문자열을 출력하다가 null character를 만나지 못해 메모리의 엉뚱한 곳에 저장되어있는 쓰레기 값을 읽어오다가 컴파일러가 멈췄다 라고 이해하면 될까요? 마지막으로, 그렇다면 char 형 배열을 선언할 시 리터럴의 크기보다 1만큼 크게 해줘야 하는지 궁금합니다. null character가 printf() 함수 사용시 용의성을 위해 문자열끝에 붙여지는 것이라면, 바꿔말하면 printf 를 사용하지 않을거라면 굳이 필요없으니까 제가 한것처럼 배열 크기와 리터럴 크기를 일치시키는게 좋을 것 같은데 맞게 생각했는지 궁금하니다.
이 사진의 노란색 형광펜 화살표 부분에 대해서 질문드립니다. 맨 마지막 강의 부분에서 pszHeap이 가지고 있던 위치정보가 동적할당 한 부분의 기준 요소의 주소였는데 strcpy_s를 사용함으로써 pszBuffer가 가지고 있던 위치 정보가 저장되었다고 생각했습니다. 그래서 제 생각에는 동적할당한 부분에서 출발이 아니라 pszHeap에서 부터 형광펜으로 szBuffer의 기준 요소로 가는 게 맞다고 생각합니다! 제가 이해한 것이 맞는지 확인 부탁드립니다.
24분 20초경에 char str1[6], str2[6]; int count = scanf("%6s %6s", str1, str2); // run-time error 위의 코드를 실행시키면 런타임 에러가 발생하는데 그 이유가 궁금합니다. 교수님이 설명을 안하고 넘어가셔서 이걸 어떻게 이해해야 할지 모르겠어요. 그리고 25분 5초경에 int count = scanf_s("%5s %5s", str1, 6, str2, 6); 5자리에 있는 숫자와 6자리에 있는 숫자가 달라도 괜찮은 건가요? 이것도 설명이 없어서 어떻게 이해해야 할지 모르겠네요
강사님 다름이 아니라 인덱스 검색의 SearchByIndexAgeRange에서 작은 버그가 있어서 해당 내용 공유 드립니다. 검색 조건을 리스트에서 작은 값의 범위로 지정을 했을 시 아래 해당 코드에서 length 가 최소 값이 1이 되므로 항상 리스트의 작은 값이 출력이 되는 버그가 있습니다. 동작에 대한 예시 화면입니다. 따라서 length 를 구한 다음 리스트에서 해당 USERDATA의 age 값을 max 값과 비교를 해서 max 값보다 작을 경우에만 해당 코드들이 동작하게 되어야 하는 것이 맞는 것 같습니다. 다음과 같이 코드 수정 시 동작 화면입니다.
안녕하세요 강사님 [필수 실습 문제] 세 정수 총합 계산하기 (누산)에서 강사님께서는 int input, total; 이렇게 해당 변수를 0으로 초기화하지않고 ctrl+F5로 실행을 시키셨더니 아래와 같이 쓰레기 값이 나오셨는데 제가 할때는 Total 값이 6으로 잘 출력되더라구요 제가 이전 코드에서 정답 코드로 실행을 한번 시키긴했는데 그값이 계속 유지되어 Total값이 6으로 출력이 되는 건가요? 그리고 강사님처럼 메모리창을 띄어서 보려고 Total 변수에 중단점(F9) 설정 후 디버깅(F5)를 눌렀더니 함수는 실행되어 Total : 6이라는 값이 출력은 되지만 "디버기가 실행 중일 때에는 사용할 수 없습니다. "라고 뜨고 또한 위쪽 메뉴가 모여있는 곳에서 디버그(D) - 창(W)을 눌러봐도 메모리창을 실행할 수 있는 메뉴가 보이지 않습니다. 이번 경우에도 이렇고 예전에는 가끔씩 이러던데 이러한 이유가 뭐고 어떻게하면 해결 할 수 있을까요?
안녕하십니까? 강사님! "콘솔 I/O 버퍼 메모리 추적하기" 강의 내용 중 아래와 같은 코드가 나오는데 잘 이해가 안됩니다. print_iobuf((IOBUF_TEST*)fp); 여기에서 fp 파일 구조체를 IOBUF_TEST* 변수로 해석하겠다는 뜻인지요? IOBUF_TEST는 구조체 자료형인데 포인터 변수로 해석한다는게 잘이해가 안됩니다. 자세한 설명 좀 부탁드립니다 수고하십시오.
16진수 0x1.1p1에서 0xb.ap1로 바뀌는 게 대응하는 문자라서 그런 건가요? 같은 1인데 왜 바뀌는 문자가 다른지 모르겠어요. f5와 d5를 출력할 때 %a는 정수 출력할 때 %d와 똑같은 역할인가요? 그리고 f5와 d5를 출력했을 때 나오는 수를 어떻게 해석하는 건지 잘 모르겠습니다.
선생님께서 말씀하신 대로 메모리 디버깅을 진행하였습니다. while문을 지날 때마다 기준 요소의 값 + 1 더하여 이동하는 것을 잘 볼 수 있었습니다. 그런데 메모리 디버깅을 보는 와중에 저렇게 붉은색으로 표시되는 메모리 값들을 발견했습니다. 왜 이렇게 표시되는 건지 중요한 건가 싶어서 질문드립니다. 다음 강의에서 찾았습니다~! 🤓
게시글과 댓글을 매핑 하려고 하는데 게시글에 어떤 댓글이 달렸는지 조회 하기 위해 게시글 -> 댓글 OneToMany 단방향 매핑을 하려고 했더니, @OneToMany는 지양하라고 해서 댓글에 @ManyToOne 매핑을 하려고 했는데요. 이러면 댓글->게시글 단방향이 되는 것 아닌가요? 게시글에 어떤 댓글이 있는지 확인을 하고 싶을 뿐인데 ManyToOne을 지양하는 이럴 땐 어떻게 해야하는지 궁금합니다 .. 매핑이 아니라 차라리 int communitySeq 를 멤버 변수로 갖도록 하고 jpql에서 join문을 통해 데이터를 가져오는 것이 맞을까요??
질문1. float d = 0.00; scanf("%f", &d);일 때 사용자가 데이터를 입력하면, 데이터가 입력버퍼로 이동한다 scanf는 입력버퍼에서 데이터를 읽어들일 때 형식지정자가 %f 이므로 float형으로 데이터를 변환한다 %f와 저장할 변수의 타입이 일치므로 float형 변수 d의 메모리 공간에 데이터를 저장한다 성공적으로 입력받은 아이템의 개수 1을 반환한다 scanf가 이 과정대로 동작하는지 궁금합니다 --------------------------------------------------------------- 질문2. 위 과정이 맞다면 double d = 0.00; scanf("%f", &d); printf("%f", d); 에서 사용자가 3.14를 입력하면 3.14가 입력버퍼로 이동한다 입력버퍼에서 3.14를 읽어들일 때 %f로 변환한다 %f와 저장할 변수의 타입이 일치하지 않으므로 double형 변수 d의 메모리 공간에 저장하지 못한다 성공적으로 입력받은 아이템의 개수가 없으므로 0을 반환한다 이렇기 때문에 실행하고 어떠한 값을 입력하더라도 초기값인 0.000000이 출력되는 건가요? --------------------------------------------------------------- 질문3. unsigned ui; scanf("%i", &ui); printf("%i", ui); %i는 signed int 타입 변수의 형식지정자로, unsigned int형 변수 ui와 다른게 맞나요? 근데 사용자가 -123을 입력하면 어떻게 변수 ui의 메모리 공간에 -123을 저장해서 그것을 출력할 수 있는지 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) A. 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) A. 아니요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) A. 네 [질문 내용] 테스트 코드 실행을 하면 OpenJDK 64-bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 이 경고가 계속 뜹니다. https://www.inflearn.com/questions/917150/openjdk-64-bit-server-vm-warning 찾아보면서 이 답변을 따라해도 로그가 뜨지 않고 경고가 뜨는데 어떻게 해야하나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 문제 풀이를 다음 날 새로 만들어서 풀어보니까 조금 다른 부분이 생겼는데 1. 본인 2. 강의 각 배열의 총 가격 값만 더하는 거라면 1번처럼 하는 게 좋아 보이는데 Item item = items[i];를 추가하신 이유와 어떤 차이점이 있는지 궁금해요