2016-03-22 56 views
-3

私はunsigned char *変数をunsigned int *に変換したいと思います。逆参照するので、このunsigned char *をcのunsigned int *に変換する方法は?

unsigned char *test = 0; 
unsigned int *x = test; 
+0

CとC++は異なる言語です。一つを選ぶ!実際の問題は何ですか?単純なキャストやポインタ型の変換は問題になる可能性があります。 – Olaf

+1

* unsigned char *変数をunsigned intに変換したいと思っています** - 1つの単語の質問。どうして? – PaulMcKenzie

+0

単純なキャスト - 'unsigned int * x =(unsigned int *)test;'で 'unsigned char *'を 'int *'に変換することができます。しかし、それはあなたが達成したいと思うものではないでしょう。あなたは 'x'ポインタ逆参照にゴミを受け取ります。ですから、正確にあなたがしようとしていることは疑問です。 –

答えて

1

のようなものはCで

unsigned int *x = (unsigned int*)test; 

しかし、クマ、これはあなたの例では役に立たないだろう(と、他の例では、私は考えることができる)心の中になりキャストを使用しますポインタは1、3、または7バイトの未定義メモリを与えます。

charunsigned intに昇格させる場合は、最初にunsigned intとして保存するか、スタックにコピーする必要があります。

+0

答えをありがとう。それは動作します – Nate

+1

それはあなたがここに感謝を与える方法です。しかし、 'test'の値が' NULL'だったので無意味です。 –

関連する問題