我想将unsigned char *变量转换为unsigned int *。这样如何将c中的unsigned char *转换为unsigned int *?
unsigned char *test = 0;
unsigned int *x = test;
我想将unsigned char *变量转换为unsigned int *。这样如何将c中的unsigned char *转换为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 ** - 一个字的问题。为什么? – PaulMcKenzie
你可以通过简单的转换将'unsigned char *'转换为'int *' - unsigned int * x =(unsigned int *)test;'。但这很可能不是你想要达到的目标。你将在'x'指针解引用时收到垃圾。所以,问题是你究竟在做什么。 –