2016-03-22 113 views
-3

我想將unsigned char *變量轉換爲unsigned int *。這樣如何將c中的unsigned char *轉換爲unsigned int *?

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

C和C++是不同的語言。選一個!什麼是實際問題?簡單的轉換或指針類型轉換可能會產生問題。 – Olaf

+1

*我想將unsigned char *變量轉換爲unsigned int ** - 一個字的問題。爲什麼? – PaulMcKenzie

+0

你可以通過簡單的轉換將'unsigned char *'轉換爲'int *' - unsigned int * x =(unsigned int *)test;'。但這很可能不是你想要達到的目標。你將在'x'指針解引用時收到垃圾。所以,問題是你究竟在做什麼。 –

回答

1

的東西用一個演員,這在C也會

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

但要記住,這將是你的榜樣無用(和任何其他的例子,我能想到的),因爲提領指針會給你1,3或7字節的未定義內存。

如果您想要將char升級到unsigned int,那麼您必須首先將其存儲爲unsigned int,或將其複製到堆棧中。

+0

感謝您的回答。它工作 – Nate

+1

那麼請「接受」它然後請:這是你如何在這裏感謝。但是因爲'test'的值是'NULL',所以這似乎毫無意義。 –

相關問題