-1
struct token{ string type; string value;};
//Global variables:
int reg[10]={-1,...,-1};
int* R0 = reg;
... down in some func...
cout<< *(R0)<< endl;//OUTPUTs -1
int valInR0= *reinterpret_cast<int*>(&token.value) //contains string "R0"
문제는 내가 다른 이름을 저장하는 가치라는 문자열의 회원을 가지고 있으며, 구조체를 가지고있다 int 형 포인터의 이름 난에서 int 형 포인터의 이름을하려고 할 때 문자열을 다시 포인터를 참조하고 값을 역 참조하는 방법을 알아낼 수 없습니다.문자열 값은
위의 예 에서처럼 문자열 val을 내 구조체에서 "R0"으로 가져온 다음 int * RO에 액세스하는 데이 구조체를 사용하면 성공하지 못했습니다.
실행할 수 없습니다. 기호는 런타임에 사용할 수 없습니다. – user0042
이런 종류의 경우에는 [std :: map] (http://en.cppreference.com/w/cpp/container/map)을 사용하고 싶을 것입니다. –
Galik
'int valInR0 = * reinterpret_cast (& token.value)'이것은 의미가 없습니다. 컴파일러 오류를 숨기기 위해 캐스트와 포인터를 사용하지 마십시오. 당신의 대답'int val = (token.value [1] -ASCII)'도 잘못 될 수 있습니다. 어쩌면'string value' 대신'int value'를 선언하는 것일 수도 있습니다. –