2016-03-22 112 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',所以这似乎毫无意义。 –

相关问题