顺序表中一个小问题

nasa4836 2009-11-21 01:57:51
在定义一个顺序表结构时,关于结构的类型我想设为任意类型都可以.

typedef struct {
  void *elem;   //顺序表元素类型我想设为任意,不知可这样表达否
  int length;
int listsize;
}sq_list;



然后,在初始化一个顺序表时候怎么传给一个具体类型.

int
init_sq(sq_list *l)
{
void *p = malloc(l.length * sizeof(void));//这样表达是不可以的.那该怎么表达.比如是int类型的.不可能为每个类                      //型写一个函数吧
 ...
}
...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
h13826013646 2009-11-22
  • 打赏
  • 举报
回复
用模版,就可以
hexi009 2009-11-22
  • 打赏
  • 举报
回复
帮顶
mstlq 2009-11-21
  • 打赏
  • 举报
回复
这样是不行的……
建议用模板……
nasa4836 2009-11-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 perfecttt 的回复:]
init_sq(sq_list *l)
{
void *p = malloc(l.length * sizeof(void));//你要用什么类型的就malloc什么类型的,如int,
则(int*)p = (int *)malloc(l.length * sizeof(int)),加强转。 ...
}

[/Quote]
我知道可以这样.但这个初始化函数就是针对int.我是想问有什么办法只写一个函数,无类型的,这样对任何类型都适用.请指教.
Boyce_Gao 2009-11-21
  • 打赏
  • 举报
回复
同上
perfecttt 2009-11-21
  • 打赏
  • 举报
回复

init_sq(sq_list *l)
{
void *p = malloc(l.length * sizeof(void));//你要用什么类型的就malloc什么类型的,如int,
则(int*)p = (int *)malloc(l.length * sizeof(int)),加强转。 ...
}

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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