묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결홍정모의 따라하며 배우는 C++
포인터 자체의 주소 vs 포인터가 가리키는 주소
#include <iostream> using namespace std; int main() { int array[5] = { 1, 2, 3, 4, 5 }; int *ptr = array; // ptr 자체의 주소는 다름, 그러나 array의 첫번째 요소를 가리킴! cout << "ptr: " << ptr << endl; // 포인터가 가리키는 주소 == array 첫번째 요소 주소 cout << "&ptr: " << &ptr << endl; // ptr 자체의 주소 (array랑 다름) cout << "array: " << array << endl; cout << "sizeof(ptr): " << sizeof(ptr) << endl; // pointer 자체의 사이즈 cout << "sizeof(ptr): " << sizeof(&ptr) << endl; // 마찬가지 return 0; } 제 질문은ptr을 출력했을때는 포인터가 가리키는 주소, 즉 array의 주소를 반환하면서,왜 sizeof(ptr)에서는 &ptr을 하지 않았는데도 pointer 자체의 주소에 대한 size를 반환하나요?? 앞선 논리처럼 array 첫번째 요소,[0]에 대한 size를 반환해야하는 것 아닌가요? 감사합니다.
-
미해결홍정모의 따라하며 배우는 C++
IntArray 클래스 변수인 int_array의 소멸자가 왜 호출되는건가요?
#include <iostream> #include <cassert> #include <initializer_list> using namespace std; class IntArray { private: unsigned m_length = 0; int* m_data = nullptr; public: IntArray(unsigned length) :m_length(length) { m_data = new int[length]; } // initializer_list have not support [ ] operator. IntArray(const std::initializer_list<int>& list) : IntArray(list.size()) { int count = 0; for (auto& element : list) { m_data[count] = element; ++count; } //for (unsigned count = 0; cout < list.size(); ++count) // m_data[count] = list[count]; // error } ~IntArray() { delete[] this->m_data; } // TODO : overload operator = /*IntArray& operator = (const IntArray& arr) { if (this == &arr) return *this; delete[] m_data; m_length = arr.m_length; if (arr.m_data != nullptr) { m_data = new int[m_length]; for (unsigned i = 0; i < m_length; ++i) m_data[i] = arr.m_data[i]; } else m_data = nullptr; return *this; }*/ friend ostream& operator << (ostream& out, IntArray& arr) { for (unsigned i = 0; i < arr.m_length; ++i) out << arr.m_data[i] << " "; out << endl; return out; } }; int main() { int my_arr1[5] = { 1,2,3,4,5 }; int* my_arr2 = new int[5] {1, 2, 3, 4, 5}; auto il = { 10,20,30 }; IntArray int_array{ 1,2,3,4,5 }; cout << int_array << endl; int_array = il; cout << int_array << endl; return 0; }질문글이 좀 지저분해서 먼저 죄송합니다. 대입 연산자 오버로딩을 하지 않을 경우에, int_array = il; 대입 연산에서 에러가 나길래, 디버그를 해보니까 int_array 의 소멸자가 호출되어서 메모리공간이 그대로 없어지더라고요..그런데 제 개념상으로는 int_array 변수가 main 함수의 local 변수인데, 아직 프로그램이 끝나지않았는데도 왜 소멸자가 호출되는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-M 질문드립니다
공유 소스 보기 (acmicpc.net)cin.tie()와 cout.tie, ios_base::sync~ 구문이 시간을 단축시키기 위함인건 알겠는데 어떤 문제에는 cin.tie와 cout.tie 둘다 쓰이는 반면에 이문제에는 cin.tie만 쓰였는데 어떤 차이가 있는지 궁금합니다 질문글 읽어주셔서 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 문제 질문 드립니다!
안녕하세요, 큰돌 선생님!강의 너무 즐겁게 잘 공부하고 있습니다! :) 테스트 케이스 및 몇 가지 더 테스트 넣어봤을 때는 잘 동작하는데, 틀렸다고 나오네요 ㅠㅠ어디서 문제가 있는지 여쭤봐도 괜찮겠습니까?😭메인 로직은,1) 카운팅 배열에 담는다2) 배열을 순회하며 존재하는 문자개수의 1/2만큼 ret에 더한다(이때 홀수 개수인 문자가 2개 이상인 경우 문자열 출력 후 종료)3) 순회 종료 후 홀수 문자와 ret을 뒤집은 temp를 ret에 더한 후 출력한다입니다!!ㅠhttp://boj.kr/e839c8c8845748e0850331f8961d45eb
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
최하위 켜져있는 비트 찾기 질문드립니다!
안녕하세요 ! 최하위 켜져있는 비트 찾기 질문드립니다!20을 예시로 아래와 같이하면 3이 나와야하는거아닌가요..?#include <iostream> using namespace std; int main() { int s = 20; // 10100(20) int idx = (s & -s); cout <<idx; // 4 }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 이렇게 풀면 왜 틀릴까요?
http://boj.kr/f28c6d421faf48ecb8e54be17eaf1cd5테케는 통과되는데 ㅎㅎ;;r,s,t 비슷하게 푸는데 다 틀리네요 하하;;
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 비슷하게 했는데 안되서 질문드립니다
http://boj.kr/c12fb379e72a4bac8f5560898b40d140 안녕하세요 선생님 dfs(i)를 dp[i]로 안받고 바로 내보내면 mx가 1로 고정되어서 나오는데 이렇게 하면 안되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
테케는 통과하는데 왜 틀렸을까요
#include<iostream>#include<vector>using namespace std;int n,d,p,root,visited[54];vector<int>adj[54];int dfs(int here){ visited[here]=1; int ret=0; if(adj[here].size()==0)return 1; for(int there:adj[here]){ if(visited[there])continue; ret+=dfs(there); } return ret;}int main(){ cin >> n; for(int i=0;i<n;i++){ cin >> p; if(p==-1){ root=i; continue; } adj[p].push_back(i); } cin >> d; if(d==root)cout<<0<<"\n"; else{ visited[d]=1; cout << dfs(root) << "\n"; }}
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
DirectX 3D에 대해 질문이 있습니다
DX 3D를 배우면서 원초적으로 궁금한점이 생겼는데 저희는 지금 Vertex를 표현할때 x, y, z좌표를 사용해 도형을 표현해주는데 x, y 좌표는 모니터의 x, y 픽셀과 대응되기 때문에 자연스럽게 렌더링 시킬수 있다고하지만 z좌표는 도대체 어떻게 렌더링이 되는 건가요? 이건 DX 파이프라인에서 알아서 설정해주는 건가요?입력되는 데이터에 z좌표 하나를 추가로 넣어주는것 외에는 아무것도 하지 않았는데 어떻게 도형이 3D처럼 렝더링시킬 수 있는건가요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
제꺼는 return ret 뒤에 조금 다르게 나옵니다
(포인터 실습. 14분 38초) 비주얼 스튜디오 2022, x86에서 디스어셈블리 확인했습니다 ret.hp = 100;000A245E 8B 45 08 mov eax,dword ptr [ret]000A2461 C7 00 64 00 00 00 mov dword ptr [eax],64h ret.attack = 10;000A2467 8B 45 08 mov eax,dword ptr [ret]000A246A C7 40 04 0A 00 00 00 mov dword ptr [eax+4],0Ah ret.defence = 2;000A2471 8B 45 08 mov eax,dword ptr [ret]000A2474 C7 40 08 02 00 00 00 mov dword ptr [eax+8],2 return ret;000A247B 8B 45 08 mov eax,dword ptr [ret]}000A247E 52 push edx000A247F 8B CD mov ecx,ebp000A2481 50 push eax000A2482 8D 15 A4 24 0A 00 lea edx,ds:[0A24A4h]000A2488 E8 A3 ED FF FF call @_RTC_CheckStackVars@8 (0A1230h)000A248D 58 pop eax000A248E 5A pop edx000A248F 5F pop edi000A2490 5E pop esi000A2491 5B pop ebx000A2492 81 C4 D4 00 00 00 add esp,0D4h000A2498 3B EC cmp ebp,esp000A249A E8 F5 ED FF FF call __RTC_CheckEsp (0A1294h)000A249F 8B E5 mov esp,ebp000A24A1 5D pop ebp000A24A2 C3 ret return ret;000A247B 8B 45 08 mov eax,dword ptr [ret]ret 뒤에 이렇게 한줄 나오고 없어요어떻게 해석해야할까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 재귀함수로 풀기
http://boj.kr/4538dc44889e45e0ba2c3468c92fca3f큰돌님, 안녕하세요!다름이 아니라 재귀함수를 사용하여 문제를 풀었습니다.n의 개수 만큼 인덱스를 추가해주고(vector v에),이 벡터 v를 재귀함수에서 '값에 의한 호출'로 사용합니다. 그러면 재귀함수를 반복할 때마다 선언 및 sort할 필요없이 이 벡터 v를 인수로 넘겨줍니다. 그럼 재귀함수마다 6가지 경우의 수를 검사하게 되고, 시간복잡도를 우려하여 백트래킹을 하기 위해 'if(s + 1 < ret)'을 통해 불필요한 과정은 생략하였습니다.이렇게 하고 제출해보니, 성공이라고 떴습니다. 이 방법도 틀리지는 않은 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3K 메모리초과
https://www.acmicpc.net/source/67173085 강의와 비슷하게 작성도 해보았지만 메모리 초과를 받습니다. 어느 부분을 수정해야 할지 감이 안잡혀서 질문남겨요!.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-L 문제 질문
안녕하세요 큰돌 선생님 좋은강의 감사합니다강의를 보다가 의문점이 드는부분이 있습니다.39.9 0.1 2 를 입력하면 2.000을 출력하는데, 9.9를 출력해야하는것 아닌가요?가장 첫번째 인덱스에 아무것도 곱하지 않은게 클 경우를 체크안하는 로직이 아닌지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I atoi를 쓰지말고 구현하라는 문제군요
네...(?)
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
c++ 변수와 Shader 변수와의 상호작용
강사님 강의 정말 잘 듣고있는 도중 질문이 생겼습니다.보시는바와같이 Shader스크립트에서 전역변수를 선언하고 C++에서 만들어준 변수를 알맞게 매핑하여 잘 사용하는 모습을 보았는데요 여기서 질문이 있습니다.바로 저 Shader스크립트에 선언된 변수와 C++스크립트에 선언된 변수가 매핑되는 과정 입니다.C++에서 선언해주는 ShaderResourceView(Texture) 같은건 처음 선언할시 VRAM 내부에 Texture의 비트값이 복사가되고 ShaderResourceView라는 아이가 그 VRAM내부에 선언된 Texture의 주소를 Shader스크립트의 Texture2D라는 아이에게 전달해준다고 생각하고있었는데 그렇다면 그 위에 선언해준 Matrix같은 경우 c++에서 처음 선언할때도 VRAM이 아닌 RAM에 생성되는데 그렇다면 Shader의 Matrix와 C++의 Matrix는 Texture처럼 주소값만 전달해주는게 아니라 완전히 복사해주는건가 두 가지 과정이 다른건가 아니면 제가 어느 한쪽을 잘못 알고 있는건가 해서 질문드립니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
x84, x64 스택 메모리
스택이 높은 주소 에서 낮은 주소로 값이 저장 되는 것으로 알고 있었는데 x64 에서는 스택 메모리의 저장 방법이 다른건가요? x64로 실행했을 경우 메모리 까보면 낮은 주소에서 높은 주소 순서대로 저장되는 걸로 보이네요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
비가 안 오는 경우도 고려해야 되니까 ret=0아니고 1인건가요?
아무것도 잠기지 않는다는 말(a[][]가 모두 101 이상인 경우)이랑 비가 안오는거(d=0)랑은 다르잖아요무조건 비가 오는 게(1<=d<=100) 아닌가요? 비가 안 올 수 도 있는 게 상식이니까 그런가요문제 설명중 노트에 힌트라고 아무도 안 잠길 수 있다 라고 적어둔게 전혀 도움이 안 되는 문제 같네요 대놓고 비가 안 올 수 있다고 해야 하지 않나요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 compare 함수 질문
안녕하세요 큰돌님. 120p string으로 이루어진 배열을 정렬한 코드에 대해 질문드립니다.제가 이해한 바로는 compare라는 함수는 문자열의 길이를 비교하는 함수입니다.if(a.size() == b.size()) return a < b; 는 문자열의 길이가 같으면 a b 크기를 비교합니다. 이 때 비교하는 기준은 아스키 코드입니다.만약 문자열의 길이가 같지 않으면 크기를 비교해서(아스키코드 기준) 바로 boolean 값을 반환합니다.111은 222와 아스키코드적으로 비교를 하게되는데.. 이때 1의 아스키코드는 49이고 2의 아스키 코드는 50입니다. 111이 a, 222가 b 이니까 a < b 는 T가 됩니다.111은 이제 33과 비교를 하게 됩니다. if문에 해당이 되지 않기때문에 바로 return a.size() < b.size() 를 하게 됩니다. a가 111, 33이 b이고 a의 size는 3, b의 size는 2입니다. 결과적으로 F가 됩니다.여기서 드리고 싶은 질문은F가 되면 순서를 바꾸는건가요? 그렇담 왜 33,222,111 가 되지 않는건가요?111과 33은 아스키코드순으로 비교할 필요가 없지 않나요? 자릿수가 다르니까 a < b를 할 필요가 없을텐데.. 왜 교안에는 아스키코드순으로 비교한다는 내용이 실려져 있는건가요? 없어도 되는 내용인것 같은데…. 실려져 있어서 제가 잘못 알고있는건지 너무 헷갈립니다…
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
코드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Spirte 코드 44~52번줄 부분에서 { } 안에 적는 이유는 코드 정리를 깔끔하게 하기 위함인가요? 아니면 다른 이유가 있는건가요?
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
싱글톤 말고 다른 디자인 패턴도 필요한가요?
싱글톤 강의를 보고 디자인 패턴에는 여러가지가 있다는 것을 알게되었습니다.다른 패턴도 따로 공부를 하는게 도움이 될까요?