能否把一个指向void*的指针赋值给一个指向unsigned char*型的指针

Gaojian_10 2002-02-06 10:30:19
vc说不行,怎么实现。
...全文
584 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
WarFather 2002-02-21
  • 打赏
  • 举报
回复
天啊!为什么要这样做??我敢肯定你的源程序一定很让人头痛.
yang751124 2002-02-21
  • 打赏
  • 举报
回复
Mandatorily Converted Is Possible!
wcxiang 2002-02-19
  • 打赏
  • 举报
回复
ok
bbdog 2002-02-18
  • 打赏
  • 举报
回复
AeoLusFeng(亦风)的回答好象是Thinking in C++中的原话呀^_^
LLnju 2002-02-18
  • 打赏
  • 举报
回复
C++ 中用 reinterpret_cast
void* foo = static_cast<void*>("123123123123123");
unsigned char* newType = reinterpret_cast<unsigned char*>(foo);
fly_dream0323 2002-02-16
  • 打赏
  • 举报
回复
强制转换 记得在C中的malloc()和free()函数的原型吗?它返回的是void *,我们用得时候把它强制转换成要的指针呀。
7zkeeper 2002-02-14
  • 打赏
  • 举报
回复
为什么不行,天天在用的
makefile 2002-02-10
  • 打赏
  • 举报
回复
我一般这么写程序
strncpy((char *)memset(buf,0,sizeof buf),p,20);
memset的返回就是void的类型的。
tsbob 2002-02-09
  • 打赏
  • 举报
回复


C不允许随便的把一个类型的指针指派给另一个类型,但可以通过void*实现。
在C中是不能随意赋值的,否则会数值溢出


什么话,指针就是一个unsigned int,强制转换都可以

linying_1116 2002-02-09
  • 打赏
  • 举报
回复
在C中是不能随意赋值的,否则会数值溢出
birdinfly 2002-02-08
  • 打赏
  • 举报
回复
当然可以,强制转换就可以了.
AeoLusFeng 2002-02-08
  • 打赏
  • 举报
回复
C不允许随便的把一个类型的指针指派给另一个类型,但可以通过void*实现。
c++不允许这样做,起编译器将会给出一个错误信息。如果真的想这样做,必须显示的使用映射。
swf123 2002-02-08
  • 打赏
  • 举报
回复
任何指针在Win32都是32位的长整形,是内存中的一个地址.
当然可以相互转换.
T *p ;(T 为任何类型)
void *pvoid = (void*) p ;
p = (T*) pvoid;(要事先知道pvoid 是T*)
golden_alvin 2002-02-07
  • 打赏
  • 举报
回复
强制转换呀,C++这个东西比C稍微麻烦一点,不过为了提高可靠性嘛
netty 2002-02-07
  • 打赏
  • 举报
回复
强制转换可以的
fixopen 2002-02-07
  • 打赏
  • 举报
回复
可以,c中自动转换,c++手动转换
Dinosaurwx 2002-02-07
  • 打赏
  • 举报
回复

要强制转换:
void* pvoid;
unsigned char* psz;
psz = (unsigned char*)pvoid;
Gaojian_10 2002-02-06
  • 打赏
  • 举报
回复
Thanks 呵呵。我原来也经常用的的强制转化的,怎么今个没想到。靠。
echolover 2002-02-06
  • 打赏
  • 举报
回复
在c++中是不可以的。c中好象可以。
taotaoer 2002-02-06
  • 打赏
  • 举报
回复
不能赋。因为:void指针是最大的。只能将其它类型的指针赋给void,而不能将void赋给其它类型的指针。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧