2017-10-08 2 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" 

問題は、別の名前を格納するstringという名前のメンバを持つ構造体があり、intポインタの名前を私はそれを参照する方法をintポインタに戻し、その値を逆参照する方法を見つけることができません。文字列値はintポインタの名前です

上記の例のように、文字列valを自分の構造体から取り出し、それをint * ROにアクセスするために使用することは、私が成功しないことを達成しようとしていることです。

+0

実行できないシンボルは実行時に使用できません。 – user0042

+0

このような場合は、おそらく[std :: map ](http://en.cppreference.com/w/cpp/container/map)を使用します。 – Galik

+0

'int valInR0 = * reinterpret_cast (&token.value)'これは意味がありません。コンパイラエラーを隠すためのキャストとポインタは使用しないでください。あなたの答え 'int val =(token.value [1] -ASCII)'も間違っている可能性があります。おそらく 'string value'ではなく' int value'を宣言することを意味します。 –

答えて

0

私はR5が格納されている場合、私はRを裂く、intに5を格納し、オフセットのためにそれを使用して値にアクセスすることができます*(reg+5)のように:

int val = (token.value[1]-ASCII);// ASCII is 48 
関連する問題