私はunsigned char *変数をunsigned int *に変換したいと思います。逆参照するので、このunsigned char *をcのunsigned int *に変換する方法は?
unsigned char *test = 0;
unsigned int *x = test;
私はunsigned char *変数をunsigned int *に変換したいと思います。逆参照するので、このunsigned char *をcのunsigned int *に変換する方法は?
unsigned char *test = 0;
unsigned int *x = test;
のようなものはCで
unsigned int *x = (unsigned int*)test;
しかし、クマ、これはあなたの例では役に立たないだろう(と、他の例では、私は考えることができる)心の中になりキャストを使用しますポインタは1、3、または7バイトの未定義メモリを与えます。
char
をunsigned int
に昇格させる場合は、最初にunsigned int
として保存するか、スタックにコピーする必要があります。
答えをありがとう。それは動作します – Nate
それはあなたがここに感謝を与える方法です。しかし、 'test'の値が' NULL'だったので無意味です。 –
CとC++は異なる言語です。一つを選ぶ!実際の問題は何ですか?単純なキャストやポインタ型の変換は問題になる可能性があります。 – Olaf
* unsigned char *変数をunsigned intに変換したいと思っています** - 1つの単語の質問。どうして? – PaulMcKenzie
単純なキャスト - 'unsigned int * x =(unsigned int *)test;'で 'unsigned char *'を 'int *'に変換することができます。しかし、それはあなたが達成したいと思うものではないでしょう。あなたは 'x'ポインタ逆参照にゴミを受け取ります。ですから、正確にあなたがしようとしていることは疑問です。 –