2017-10-08 89 views
-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指针并取消其值。字符串值是一个int指针的名称

如上面的例子以字符串VAL“R0”出我的结构,然后用它来访问INT * RO就是我试图完成对没有成功。

+0

您不能这样做,符号在运行时不可用。 – user0042

+0

对于这种事情,你可能想使用[的std ::地图<的std :: string,int>的(http://en.cppreference.com/w/cpp/container/map)。 – Galik

+0

'INT valInR0 = *的reinterpret_cast (&token.value)'这是没有意义的。不要使用强制转换和指针来隐藏编译器错误。你的答案'int val =(token.value [1] -ASCII)'也可能出错。也许你的意思是声明'int value'而不是'string value'。 –

回答

0

谢谢你的答案,我决定是操纵的名称,因此,如果R5存储我懵了R,保存在一个int 5,然后可以使用它的偏移量来访问,如价值*(reg+5),如下所示:

int val = (token.value[1]-ASCII);// ASCII is 48 
相关问题