가변 길이 배열에 대해서 위키에는 길이를 런타임에 결정하는 배열(whose length is determined at run time (instead of at compile time).) 라고 정의되어있는데요. https://en.wikipedia.org/wiki/Variable-length_array int main() { const int n = 8; int arr[n]; }; 제가 작성한 코드에서 n이 8로 초기화 및 상수로 되어 있는데 이건 컴파일 타임에 이미 배열의 길이를 결정해 놓은게 맞나요?? 오류가 나는 것은 비주얼 스튜디오의 컴파일러가 이 문법을 지원하지 않아서 일까요,,??
main 역시 메서드인데, 앞전 메서드에서 받는 변수는 매개변수인데 main 메서드 안에는 인자를 뜻하는 args가 존재하는 건가요?? 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
안녕하세요 영한님! 궁금한 점은 OCP 원칙까지 보고나서 생겨난 질문입니다. Car 인터페이스를 구현하는 K3Car, Model3Car, NewCar의 클래스, Driver는 Car인터페이스를 의존하고 있는데요.,,. 강의 내용과 같이 Car 인터페이스에 있는 추상메소드들만 구현한 클래스끼리 있을 때는 크게 어려운 점이 없는 것 같지만.,., 위와 같이 NewCar에서 이 때까지 없었던 pressBrake()라는 기능을 새로 추가하여 Driver에게 해당 메소드를 사용하게 하고싶다면! 어떻게 코드를 짜야하는지 가 저의 궁금증입니다! 먼저 코드를 짜보면서 혼자 해결해보려고 했으나,.., 자바와 아직 완벽히 친해지지 못했는지 더 좋은 방법이 있지 않을까 하며 만족스러운 해법을 찾지 못 하고 있습니다.. 1. Driver 클래스의 drive() 메서드 블록 안에서 instanceof를 사용하여 car변수가 NewCar 클래스일 때 pressBrake()를 사용한다면? 강의에서 배웠던 OCP원칙 중 Closed for modification에 모순이 생겨버리고.. 2. Car 인터페이스에 pressBrake() 메서드를 넣는다면? OCP 원칙에 모순이 생길 뿐더러 오히려 대대적인 코드 수정도 생겨버립니다.. 해당 사항에 대해서는 어떻게 대처를 해야 잘했다고 소문이 날지 궁금하여 질문을 올리게 되었습니다!
강의 22분 35초 경 switch-case 문을 통해 체크박스의 id로 분기를 하려고 할 때 // id로 분기함 switch (checkboxId) { case R.id.checkBox: break; case 문의 R.id .checkBox 부분에서 "Constant expression required" 에러가 발생합니다. 구글링을 해보니 switch-case 문의 상수가 final로 선언되지 않아 발생하는 문제라고 하는데 어떻게 해결할 수 있을까요?
이 두 구문에서 차이는 증감연산자가 전위인지 후위인지 인데 for문에서는 전위든 후위든 작동 방식에 있어서는 차이가 없지 않나요? i = 0 일때 조건식을 검사해서 참이므로 i를 출력하고 i++든 ++i든 i의 값을 1 증가 시킨후에 다시 조건식을 검사하는 것으로 알고 있습니다. chat gpt에서 차이가 있다고 나오는데 설명이 명확하지 않아 여쭈어 봅니다! 정리하자면 전위와 후위의 근본적인 차이점은 알고 있지만 그것이 for문 증감식으로 쓰일땐 결과적으로 같은 동작 방식을 취하는게 아닌가 궁금합니다 감사합니다!
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님먼저 첫번째 질문은 DTO (CalculatorMultiplyRequest request)를 매개변수로 받는 데, 자동으로 request 인스턴스가 생성되는 것이 이해가 가지 않습니다. 클래스는 생성자를 호출하기 위해서는 new키워드로 생성해야 하는 것으로 알고있는데, 이해가 잘 되지 않습니다.두번째 질문은 GET요청과는 다르게 POST요청은 Request 클래스 내부에 생성자 없이도 number1과 number2에 값이 할당되는 점입니다.어떻게 이게 가능할 수 있죠..?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. <property name="hibernate.hbm2ddl.auto" value="update"/> create / create-drop 은 잘 됩니다. 하지만 update는 이상한점을 발견을 했습니다. 이유를 알고 싶어서 이런 질문 드립니다. update를 value에 작성을 한뒤에 Member class 에서 A - private int age x B - private Integer o 위 와 같이 작성을 하고 나서 실행을 해보면 A는 오류가 발생하지만 B는 정상적으로 작동이 됩니다. 이유를 알려주세요.
안녕하세요. 강의의 23째 줄 코드를 제가 0.0625e0;로 바꾼 후 build를 해보니까 프로그램 마지막 출력에서 각각 아래와 같은 값이 나왔습니다. 0x1.0000000000000p-4 0X1.0000000000000P-4 저는 0.0625가 1/16이니 출력이 0x1.000...0p-1이나 0x0.1000...0p+0일 줄 알았는데 p-4가 나와서 왜 이러한 값이 나오는지 질문드립니다.
[질문 내용] 준영속 상태와 비영속 상태의 차이점에 대해 이해한바는 다음과 같습니다. 비영속 상태 : 한번도 엔티티 매니저의 관리를 받아본적 없는 엔티티 준영속 상태 : 엔티티 매니저의 관리를 받다가 연결을 끊음으로써 더이상 관리 받지 않고있는 상태. 제가 아는 차이점은 이것 뿐인데 혹시나 이게 두 상태의 차이점의 전부라면 굳이 상태를 나눌 필요가 있나? 라는 생각이듭니다. 그냥 '준영속 상태' 라는 단계를 없애고 연결이 끊기면 비영속 상태 로 , 다시 연결을 맺으면 영속 상태 로 이렇게 단계를 줄여도 되지 않을까요? 혹시나 제가 모르거나 잘못이해하고 있는점이 있다면 알려주시면 감사드리겠습니다!!
강의에서 문자열의 경우, 메모리를 확인했을 때 문자열의 순서에 따라서 바이너리가 정렬된 것을 알 수 있었습니다. 근데 int로 선언된 16진수 데이터의 경우는 역순으로 채워진다는 개념을 들으니 혼동이 옵니다. 혹시 문자, 문자열의 경우는 정배열이고 숫자 데이터의 경우는 역배열이다 라고 생각하면 될까요?
int TestFunc(){ static int a = 10; ++a; return a; } int main(){ printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); } 위 예제에서의 질문입니다. 1. Compile시에 정적영역이 결정되는 건가요? 질문이유 : a의 주소에 코드가 실행되지 않았음에도 이미 10이라는 값이 들어가있어서 질문을 드립니다. 2. TestFunc()이 실행될 때 static int a = 10 가 매번 평가되는게 아닌건가요? 질문이유 : 제 생각으로는 정적영역에 있더라도, 할당 연산자 때문에 10을 매번 넣어서, 출력값이 11 ,11 ,11이 될거라고 생각했습니다.
양질의 강의에 진심으로 감사의 말씀 드립니다. 다름이 아니라 제가 참조에 대해서 계속 고민하다가 개념적인 이해를 시도하는데 이것이 맞는 것인지 확인하고자 강사님께 질의를 남깁니다. 직접참조 : 메모리 주소로 접근해서 바이너리 확인 - 메모리 주소 : 포인터(값을 가리키지 않고 주소를 나타냄) - 그 메모리 주소의 값 : 비트로 구성된 메모리의 값 - 변수 : 메모리가 값을 위해 할당한 데이터 공간(값이 들어갈 수 있는 일종의 space) 간접참조 : 메모리 주소의 주소 - 즉, 포인터의 포인터 - 그래서 간접참조된 메모리 주소에는 값이 들어있지 않고 그 값을 가리키는 포인터(메모리 주소)가 들어있다. "가장 큰 차이는 직접참조는 메모리 공간에 쓰인 바이너리가 있는 것. 간접참조는 주소에 관련된 정보 바이너리가 있기 때문에(직접참조는 메모리 주소 - 값, 간접참조는 메모리주소 - 메모리 주소) 일종의 파이프-라인. 따라서 같은 15라는 값을 나타내도 직접참조는 그 메모리 주소의 값 그 자체를 나타내고, 간접참조는 그 주소에 대한 정보 바이너리가 적혀있다. " 제가 계속 고민을 하다 이런식으로 좀 개념을 잡았는데 제대로 잡고 있는 것인지 궁금합니다. 감사합니다.
search -> edit -> save 중 save에 궁금한 게 있습니다. int SaveNodeToFile(MYNODE* pNode)를 보면 파일에서 불러낸 경우만 고려돼있습니다. 신규 데이터를 찾아서 수정하는 경우에는 저장하지 않고 프로그램 종료 시 신규 데이터 일괄로 저장하는 방법을 써야할까요? pNode->bNew 값을 따져서 신규인지 구분하고 ab+모드로 파일 끝에 저장하는 건 생각했는데 파일에 저장했으니 bNew를 false로 수정해야하나? 수정하면 offset이 0이라 다시 검색할 때 offset이 0인 데이터를 찾을텐데? 그럼 offset 값은 어떻게 주지? bNew 값을 true로 저장하고 신규 데이터 일괄 저장할 때 덮어 써야하나? 라는 고민에 빠졌습니다. 어떤 방법이 좋을까요?