void函数能带回返回值吗?

leon1741
博客专家认证
2008-05-26 08:13:39
既然是void函数,应该是不能带回返回值的吧?
但是以下程序就明明带回了一个返回值,而且编译运行无误
或许,是我理解错误吗?
请各位大侠,谁帮我分析一下吧……

void xdata *GetListHead(LIST xdata *Lp) //获取链表头(返回指针的函数)
{
if (Lp == 0 || Lp->Item == 0)
return 0;
else
return ((void xdata *)Lp->Head + sizeof(NODE));
}

拜托啦!!!
...全文
1308 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leon1741 2008-05-26
  • 打赏
  • 举报
回复
多谢,了解了!
特别感谢二楼的,一语惊醒梦中人啊,呵呵……
  • 打赏
  • 举报
回复
当然可以malloc,calloc 的函数原型为:
void *malloc(unsigned int size);
void *calloc(unsigned int n,unsigned size);

此函数的值(即"返回值")是一个指向分配域起始地址的指针(类型为void).
使用此类函数时,通常会用强制转换,如:
p=(struct student *) malloc(LEN);
大前置 2008-05-26
  • 打赏
  • 举报
回复
void * 是可以有返回值的。void * 指针代表函数可以返回任意类型的指针。

jintianfree 2008-05-26
  • 打赏
  • 举报
回复
void xdata *????

void * 是可以滴,其他类型的指针可以赋给void * 指针

69,369

社区成员

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

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