【发布时间】:2020-08-17 12:57:38
【问题描述】:
我正在研究 C 中的向量,即动态可调整大小的数组。我已经实现了一个处理 char 数组的方法。
但是,如果我想为不同类型的数组(int、long 等)提供相同的功能,我必须重新完成整个事情,并且使用不同的名称让它们不串通,因为它们会在同一个命名空间中。
我的问题是:有没有办法根据传递给初始化函数的某个参数来处理 int 数组或 char 数组?
假设我有一个 struct Vector,其成员是 char 指针。就目前而言,当我运行 init 函数时,它会为这个 char 指针分配内存以用作 char 数组。
我能否做到这一点,例如,根据传递给 init 的某个参数,它将为 int 数组而不是 char 数组分配内存?
我一直在考虑这个问题,这将涉及使用 void 指针并在很多地方进行强制转换。还有其他方法/最好的方法是什么?
【问题讨论】:
-
您是否在寻求一种方法来改进您编写的已经有效的东西?如果是这样,请将其发布到Code Review。但如果你这样做,我建议你发布代码,而不是它的描述。花点时间阅读how to ask a good question。
-
可以使用
union的指针。 -
@kaylum 听起来可能可行。谢谢