void*的函数和指针的问题

lswx 2005-02-11 12:44:14
void *
Malloc(int size)
{
void *ptr;

if ( (ptr = malloc(size)) == NULL)
printf("malloc error");
return(ptr);
}
-----------------------------
问题:一般什么时候用void*函数和指针,有什么优缺点?
...全文
602 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
lswx 2005-03-01
  • 打赏
  • 举报
回复
谢谢楼上各位回答!
nicknide 2005-03-01
  • 打赏
  • 举报
回复
不多说,你可以从我每一个代码文件中看到void*的存在。
在一些隐讳的地方,用void* ,确保安全。
little_paradise 2005-02-24
  • 打赏
  • 举报
回复
回复人: tanxingqiu(谈谈) ( ) 信誉:100 2005-02-15 23:18:00 得分: 0


一般不需要用这个东东,如果用了,那就要小心检查程序相关的美一寸肌肤了!

此话从何讲起????


疯狂低调 2005-02-23
  • 打赏
  • 举报
回复
感觉void*更加灵活,简直是万能指针啊!
holymoon858 2005-02-22
  • 打赏
  • 举报
回复
void * 我认为写成“通用指针”更好理解一些
ww425 2005-02-20
  • 打赏
  • 举报
回复
学习
ligang17596 2005-02-20
  • 打赏
  • 举报
回复
学习ing 值得关注
tanxingqiu 2005-02-15
  • 打赏
  • 举报
回复
一般不需要用这个东东,如果用了,那就要小心检查程序相关的美一寸肌肤了!
idau7 2005-02-13
  • 打赏
  • 举报
回复
void*的问题很少被整理出来哦。
davidmorre 2005-02-13
  • 打赏
  • 举报
回复
喔,我认为void*的作用主要还是在返回值上,毕竟用void返回后,可以指代任何类型的指针,返回后可以强制转换成需要的类型指针。一般认为它指向一个不确定大小与类型的空间。但如果需要的话,也可以用它作形参,来接受任意类型的指针。
sky911911 2005-02-13
  • 打赏
  • 举报
回复
应该打印出 malloc error吧 !
CodeProject-Jerry 2005-02-13
  • 打赏
  • 举报
回复
void * 就是LPVOID

英语好象叫 Generation Pointer
不知道错了没~~
Lethe_1 2005-02-12
  • 打赏
  • 举报
回复
实际上void*可以指向任和一个地址,你想总线错误就用它!!!
athena301 2005-02-12
  • 打赏
  • 举报
回复
被使用前都强制转换。
linkmm 2005-02-11
  • 打赏
  • 举报
回复
任何指针都有默认的转换为void*的方法而不需要cast.
这是void*优点之一
Squall1009 2005-02-11
  • 打赏
  • 举报
回复
你用void*的时候一般要把他还原成他原来的类型,其他也没什么,只不过是是它可以指向任何一个对象,说白了就是它就光代表一个地址
melonliu 2005-02-11
  • 打赏
  • 举报
回复
void *主要用于通用指代的情况下,从字面上看比char *含义更明确。比如Malloc并不知道需要分配内存的具体数据类型是什么,它只管分配内存然后返回一个无类型指针。使用时注意类型转换。
BuleFreezing 2005-02-11
  • 打赏
  • 举报
回复
void*是无类型指针,在以前没有引入void*的时候,可以用char*来代替。
void*所指向的目标编译器不知道其大小(因为不知道是什么类型,默认步进是一个byte),所以有些编译器不支持void*类型的运算,如vc,但是gcc可以。
void*具体的用法比较的少,正如它的名字一样,在不能确定类型的时候用,比如说要用c写一个能接受任何类型的堆栈什么的,可能会用到。有时候在一些比较低级的场合会用到。
妖怪 2005-02-11
  • 打赏
  • 举报
回复
一般在对象类型无法确定或者在操作的时候发生类型变化的时候使用VOID*指针,而VOID*的好处在于可以对指针指向对象的不确定性,能在后面强制转换来删除。
naturemickey 2005-02-11
  • 打赏
  • 举报
回复
我从来不用void* Malloc(int);
不过有时用void (*Malloc)(int);

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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