首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C语言中的泛型编程问题

C语言中的泛型编程问题
EN

Stack Overflow用户
提问于 2011-03-31 14:52:51
回答 4查看 270关注 0票数 2

我正在用C编写一个动态数组。

代码语言:javascript
运行
复制
typedef struct __c_array {
    void**_elem;
    int  cur_size;
    int  capacity;
}c_array;

我的界面如下所示:

代码语言:javascript
运行
复制
extern void push_back_c_array ( c_array*, void *);

现在,用户必须为要推入数组的元素分配内存。有没有办法使用void *来避免这种情况。

我想用它来做下面的事情

代码语言:javascript
运行
复制
int a = 5;
push_back_c_array ( <ARRAY_PTR>, a );

这有没有可能。

EN

Stack Overflow用户

发布于 2011-03-31 15:23:57

你举了一个例子,只要你使用整数或任何其他与a=5大小相同的类型,whit就应该可以工作。泛型数组的用户将希望推送结构,就像您的一样。但是,大元素不能/不应该通过值传递,但它的指针应该传递。

使用泛型和no no on sizeof(int)会给用户带来一些额外的工作。我认为最好的解决方案是在函数中传递分配的指针(void*),无论谁想要取出这个元素,都应该释放()这个结构。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5496211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档