설명하기 앞써 우선


--- Util.h ---

struct AnimationData {

vector<int> data

}


static unordered_map<string, AnimationData*> _GLOBAL_ANIMATION_DATA_


--- A.h ---

#include "Util.h"

// _GLOBAL_ANIMATION_DATA_에 값 채워넣기

_GLOBAL_ANIMATION_DATA_["Data1"] = animData1;

_GLOBAL_ANIMATION_DATA_["Data2"] = animData2;

....


--- B.h ---

#include "Util.h"

// _GLOBAL_ANIMATION_DATA_에 쌓인 값 읽기

// 예외! NULL 참조!

AnimationData* data = _GLOBAL_ANIMATION_DATA_["Data1"];


이런식으로 코드를 짰는데,

분명 A.h에서 값을 채워 넣었는데 B.h에선 _GLOBAL_ANIMATION_DATA_에 값이 하나도 채워지지 않는다는게 문제임.


Q1> static 정적 변수는 데이터 영역에 생성되는데, static으로 선언된 구조체의 vector 래핑의 (void*)data는 힙영역에 생성되는거냐 아니면 어디에 생성되는 거냐?

Q2> 위 문제는 왜 일어나는거냐? 키워드라도 알려줘


해결법까지 바라지도 않는다. 키워드라도 알려줘