묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨C개발자를 위한 최소한의 C++
이동생성자의 매개변수로 넘어가는 임시객체의 값 유지 관련하여 질문이 있습니다.
안녕하세요.이동시멘틱 강의를 보다가 의문이 있어 문의드립니다.강의에 나오는 CMyString 클래스는 내부 포인터 변수 멤버를 가지고 있는데, CMyString a,b,c;에서 a = b+c;를 실행할 때CMyString operator+() 함수의 return값의 사본이 임시객체에 저장되고 이 임시객체가 이동생성자의 매개변수에 들어가는 것이 맞을까요?만약 그렇다면 사본을 가진 임시객체의 포인터 변수 멤버의 값이 return 값의 포인터 변수 멤버의 값과 같을텐데 return 후 return값이 소멸함에도 이동생성자 내부에서 사본은 어떻게 계속 값을 유지하는걸까요?이동생성자 호출 시에는 이동생성자 종료 전까지 return 값이 사라지지 않는걸까요?사본이라고 표현하신 것의 의미도 궁금합니다...사본은 모든게 다 똑같은 복사본인걸까요..?근데 그러면 참조자와 같은것일것같은데 반환형식이 참조자는 아니고... shallow copy한 것도 아니고 deep copy한 것도 아닌것 같은데...너무 헷갈리네요...감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 질문있습니다.
http://boj.kr/e06068e5bc084dbfabe9032b1222804e제 코드입니다. 2048(easy)랑 낚시왕처럼 4방향을 모두 고려해야할때, 비슷한 로직이긴 하지만 변수를 달리해야 할때, 그냥 방향 하나하나마다 코드를 다 짰는데 간결한 코드를 짜는 것을 충분히 연습해봐야한다고 생각하시나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
atoi() 에 대한 질문이 있습니다.
안녕하세요.수강생 조돌이입니다. :) 항상 좋은 강의 감사드립니다.atoi() 에 대한 의견을 여쭙고 싶어서 질문 남깁니다. atoi() 메소드는 문자열을 인자로 넣어서 그 문자열이 숫자인지, 문자열인지 판단합니다.문자열이라고 판단하면, 0을 반환하게 됩니다. 여기서 문자열이 “0”이라면, 0을 반환한다는 부분이 어색하다고 생각합니다.string str1 = "0"; if (atoi(str1.c_str()) == 0) { cout << "str1 is 0"; } // str1 is 0 해당 백준 문제인 [1620] 나는야 포켓몬 마스터 이다솜 에서는 문자열 0을 입력받을 케이스가 없으니 오류가 발생할 수 없지만,논리적으로 "atoi() == 0 은 문자열이다." 라는게 모순이라고 생각합니다. 혹시 이 부분에 대해서 선생님께서는 어떻게 생각하시는 지 궁금합니다!
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
ProtoBuf UE 연동 문제
Spawn #2 따라하고 실행해보는데 메모리 충돌로 인해 언리얼 크래쉬가 발생하네요혼자 열심히 시도해 본 결과 UE FMemeory와 ProtoBuf 소멸자에서 delete 되는 부분에서 UE delete 오버라이드 문제인 것 까진 알게 되었으나 어떻게 해결해야 할 지 모르겠어서 질문 드립니다UE 5.6 버전이고, ProtoBuf는 C++ 5.29.5(29.5) 버전입니다vcpkg를 사용해서 라이브러리 다운 받았고 /MD 동적 라이브러리로 UE 프로젝트에 포함시켰습니다 (dll로 인해서 new/delete 오버라이드로 인한 메모리 충돌 문제가 더 쉽게 발생하여 /MT로 포함하는 것이 나을 수도 있겠다고 LLM(gpt, grok) 등이 말한 내용을 적용하고자 하였으나 빌드를 실패하여 그 부분은 진행하지 못하였습니다)다음 이미지는 실행했을 때 크래쉬가 발생하는 부분과 로그 일부 입니다LoginId:468bde9140a0ef5bd78746b7d5b86a2cEpicAccountId:e6607fa7037e41448797c486f54e5315Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000023d9d00116fUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_S1!operator delete() [C:\Program Files\Epic Games\UE_5.6\Engine\Source\Runtime\Core\Public\HAL\PerModuleInline.inl:9]UnrealEditor_S1!Protocol::PlayerInfo::`scalar deleting destructor'()libprotobuf!google::protobuf::internal::RepeatedPtrFieldBase::DestroyProtos() [C:\Users\yudle\vcpkg\buildtrees\protobuf\src\v5.29.5-5bafd96eab.clean\src\google\protobuf\repeated_ptr_field.cc:90]UnrealEditor_S1!Protocol::S_LOGIN::~S_LOGIN() [D:\GitHub\S1\Source\S1\Network\Protocol.pb.cc:586]UnrealEditor_S1!std::_Func_impl_no_allocServerPacketHandler::Init'::2'::<lambda_1>,bool,TSharedPtr<PacketSession,1> &,unsigned char *,int>::_Do_call() [C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\functional:810]UnrealEditor_S1!PacketSession::HandleRecvPackets() [D:\GitHub\S1\Source\S1\Network\PacketSession.cpp:37]UnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_CoreUObjectUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_CoreUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_EngineUnrealEditor_UnrealEdUnrealEditor_UnrealEdUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorUnrealEditorkernel32ntdllS_LOGIN 패킷의 소멸자에서 오염된 메모리 접근 문제로 크래시가 발생한 것으로 보입니다
-
미해결[게임 프로그래머 도약반] DirectX11 입문
4강 삼각형띄우기 오류관련 질문있습니다
삼각형 띄우기 4강에서 40분까지 강의를 듣고 똑같이 실행했는데 이런 오류가 납니다void Game::LoadShaderFromFile(const wstring& path, const string& name, const string& version, ComPtr<ID3DBlob>& blob){ const uint32 compileFlag = D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION; HRESULT hr = ::D3DCompileFromFile( path.c_str(), nullptr, D3D_COMPILE_STANDARD_FILE_INCLUDE, name.c_str(), version.c_str(), compileFlag, 0, blob.GetAddressOf(), nullptr); CHECK(hr);} 이 코드 CHECK(hr)부분에서 걸리고 0x8876086c 오류코드가 나옵니다 코드는 전부 동일한데 도무지 문제를 모르겠어서 질문드립니다! 빌드도 잘 됩니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
정답과 같은 로직인데 왜 통과를 못하는 지 모르겠습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.링크http://boj.kr/17a5bc98d39b42d7bc078d2523de17e8신기한 점은 ll half = myPow(a,b/2); ll ret = (half * half)%c; if(b%2) return ret * a % c; return ret;이렇게 따로 ret이라는 변수로 빼내면 통과가 됩니다. AI한테 물어봐도 잘못된 답변만 계속하네요(통과하지 못한 코드가 안전한 코드라고 뜹니다)
-
해결됨[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
CircumferenceMarkerWidget의 bReticleCornerOutsideSpreadRadius 초기화 관련
안녕하세요! 먼저 좋은강의 감사드립니다. 세션15. 64 CircumferenceMarkerWidget 강의에서 코드 흐름 의도가 자체가UCircumferenceMarkerWidget 클래스의 bReticleCornerOutsideSpreadRadius 값을 가지고 SCircumferenceMarkerWidget 클래스의 똑같은 bReticleCornerOutsideSpreadRadius 값을 초기화 해주는 형식으로 구현하는것으로 이해 했습니다. 근데 강의 코드도 그렇고 실제 Lyra 코드에서도 보니까SCircumferenceMarkerWidget::bReticleCornerOutsideSpreadRadius 값을 초기화 해주는 코드가 따로 안보여서요 결론적으로 bReticleCornerOutsideSpreadRadius 값에 쓰레기값이 들어가서 게임을 실행할떄마다 MarkerWidget이 랜덤으로 Spread 반경 밖으로 벌어지거나 안벌어지거나 문제가 생기는거 아닌가요? 이게 실제 Lyra샘플 코드에서도 초기화 하는 코드가 안보이길래 이게 의도된것 일지 아니면 일종의 버그라고 보면되는것인지 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘교안(C++) 질문이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.취준생 조돌이입니다! _ _)최근 알고리즘 공부를 위해서 수강했고, 재밌게 C++ 교안을 읽어보면서 공부하는데 궁금한 부분이 있어서 2가지 질문드립니다!#1. 암시적 형변환문서 : 알고리즘교안.pdf페이지 : 64해당 페이지에서“~. vector의 size()라는 메서드는 unsigned int를 반환합니다. ~”라고 적혀있습니다. 아래는 예시 코드입니다.#include <bits/stdc++.h> using namespace std; int main(){ vector<int> a = {1, 2, 3}; cout << a.size() - 10 << '\\n'; // 18446744073709551609 return 0; } 교안에서는 v.size()를 unsigned int 타입으로 설명하고 있습니다. 18446744073709551609 값은 2^64 범위가 되어야 나오는 값으로 알고 있는데, 그렇다면 v.size() 타입은 unsigned int 타입이 아닌 unsigned long 타입이 되어야 하는거 아닌가? 궁금합니다!#2. vector (2차원 배열)문서 : 알고리즘교안.pdf페이지 : 113#include<bits/stdc++.h> using namespace std; vector<vector<int>> v; vector<vector<int>> v2(10, vector<int>(10, 0)); vector<int> v3[10]; int main(){ for(int i = 0; i < 10; i++){ vector<int> temp; v.push_back(temp); } return 0; } 예시 코드에서 v3 변수는 1차원 벡터로 선언되었음을 확인할 수 있었습니다.vector<int> v3[10]; 하지만 아래 그림에서 v3 변수는 {{}, {}, …, {}} 빈 벡터를 10개가진 2차원배열(벡터)로 설명되는 것으로 이해했습니다.이런 경우에 위 코드에서vector<vector<int>> v3[10];처럼 코드가 작성되어야 하는게 아닌가? 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
77강 2-I. 맞왜틀 질문 드립니다.
안녕하세요 선생님.선생님 코드를 보니 제 코드로 맞왜틀 여쭤보는것도 매우 부끄럽지만....ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ나름 ㅠㅠㅠㅠㅠㅠㅠ열심히 풀어본거라 질문드립니다.1>첫번째 맞왜틀은 메모리 초과로 뜬 제 코드입니다.어느 부분이 메모리가 문제가 되는지 파악할 수가 없어 질문드립니다.http://boj.kr/475df48157ea4c62a50d11a33f8ba68d 2>두번째 맞왜틀은 아예 틀렸다고 뜨는데 백준은 테스트케이스 뭐에서 오류가 났는지도 보여주지를 않아서 더욱 디버깅이 어렵네요. 어느 부분이 논리적으로 틀렸는지 여쭤봅니다. http://boj.kr/c9b54bd0615e4adb98f97d025048ddda 감사합니다.!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코드 질문있습니다.
안녕하세요 큰돌님:) 6998번: Tree Isomorphism위 문제를 아래와 같이 풀었습니다.http://boj.kr/996b17617f9548178e4a41731c255e42틀렸다고 나오더군요...혹시 어떻게 풀어야 할까요?
-
해결됨[Rookiss R&D Lab] UE5 Framework Insight (Liu)
KeepRelative 와 KeepWorld 의 설명을 정확히 모르겠습니다.
상대 Transform 을 유지하겠다. 와 WorldTransform 을 그대로 사용하겠다는 의미가 어떤 것인지 정확히 모르겠습니다.
-
해결됨홍정모의 따라하며 배우는 C++
170강 유니크 포인터에대해 질문있습니다
17분 경 유니크 포인터 안의 리소스 포인터를 함수매개변수로 받아주는데 포인터로 받는것도 결국은 복사되는 것 아닌가요? 유니크 포인터가 아닌 포인터로 받아서 카피 시멘틱스가 작동해도 상관이 없는 건가요? 헷갈려서 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코테 일주일 남은 경우 복습법
지원한 회사의 코테까지 일주일도 채 남지 않았습니다.아직 회사를 다니면서 강의를 수강중이다보니 속도가 더뎌 모든 강의를 다 보진 못했네요ㅠ 당장 할 수 있는 최선의 공부 방법이 있을까요?물론 코테가 끝나면 다시 진도를 쭉 나갈 예정입니다!
-
미해결홍정모의 따라하며 배우는 C++
섹션 5 퀴즈의 답이 이상합니다
C++섹션 퀴즈 5문제중using namespace std;와 같이 네임스페이스 전체를 사용하는 것이 잠재적으로 일으킬 수 있는 문제점은 무엇일까요?의 답이 다른 네임스페이스의 요소와 이름 충돌이 발생할 수 있습니다 같은데 프로그램 실행 속도가 느려집니다로 나옵니다 답을 수정해야 할 것 같습니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
제 알고리즘 틀린 부분
안녕하세요 큰돌님!강의 잘 듣고 있습니다! 제가 이 문제를 아래 코드로 작성해 제출했는데, 틀린 결과가 나와 그 이유를 찾아보다가 제 생각이 맞는지 확인하고 싶어 질문을 남깁니다.보통 트리 구조에서는 부모 노드가 먼저 나오고, 번호도 부모부터 매기는 경우를 많이 봤습니다. 그리고 예제 입력도 그런 형태로 주어져서, 부모 노드가 자식 노드보다 먼저 입력된다는 전제로 코드를 작성했습니다.이 부분이 잘못된 부분이 맞을까요?또, 이런 상황이 발생하지 않도록 하려면 어떤 식으로 코드를 짜는 게 좋을지도 궁금합니다. https://www.acmicpc.net/source/99400715
-
미해결readable_code::CMake - Fancy하게 C++ Project 만들기
Type checking
set(DATA_LIST ${CMAKE_CURRENT_SOURCE_DIR}/directory0/file.txt ${CMAKE_CURRENT_SOURCE_DIR}/directory0/directory ${CMAKE_CURRENT_SOURCE_DIR}/directory0/symlink.txt file.txt directory0/directory directory0/symlink.txt ) foreach(DATA ${DATA_LIST}) if(IS_DIRECTORY ${DATA}) message(STATUS "${DATA} is a directory") endif() endforeach() 왜 directory0/directory 는 IS_DIRECTORY 에서 참으로 판단되지 않나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 질문있습니다.
안녕하세요 큰돌님:)http://boj.kr/6a3cafda29444abbac8d2f95e1fb1593위와 같이 코드를 짜고 틀려서 강의를 봤습니다.위 코드에서 안되는 반례 상황이 있을까요?홀짝으로 나누어 진행하는 것은 수빈이가 만약 무한히 +1, -1을 반복한다면 언젠가 만날 수 있기 때문에 그렇게 한 것이군요.둘의 턴이 1턴 차이가 아닌 2턴 차이면 +1, -1로 만날 수 있기 때문에 홀/짝 두가지의 visited를 한 것이군요.글을 적으면서 이해했습니다 ㅎㅎ...
-
미해결readable_code::CMake - Fancy하게 C++ Project 만들기
MATCHES 에서 regex 사용
Control statement 26:45 에 "^[a-z]{3}.txt$" 가 아닌 "^[a-z]3\\.txt$"가 맞는 것 같습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 질문있습니다.
안녕하세요 큰돌님:)http://boj.kr/b242ee3c08074321874c8a8c4a09c09e위와 같이 코드를 작성했습니다.시간 초과를 생각해서 물인 부분을 모두 queue에 담았고 그 다음 이전 수업에서 알려주신 qsize를 정의해서 유사 플루드필(?)을 진행했습니다. 영상을 보니 백조가 있는 위치도 물로 지정해야 함을 이해했습니다. 다만 이 코드에서 시간 초과가 나는 이유는 백조의 탐색이 매번 이어지기 때문인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 질문 있습니다.
안녕하세요 큰돌님:) http://boj.kr/ce48f0ed41804d029b73101bd51865a7http://boj.kr/8d266616a48c4b569934a028012b50761번 코드는 맞고 2번 코드는 틀린 이유는 뭔가요??1번 코드는 방문을 0 ~ 100,000까지만 가능하게 했고 생각해보니 수빈이가 10만을 넘어간다음 -1을 이용해 더빨리 찾을 수도 있는 생각에 20만까지 max를 설정해서 다시 제출하니 틀렸다고 나옵니다.