我创建了一个像这样的通用矩阵结构:
typedef struct mat_t {
/**
* \brief matrix structure
*/
unsigned int c, l;
void **matrice;
}* mat;
我的问题是学习如何为矩阵分配内存,因为它可以包含复数、 float 或其他... 因此,我想知道如何将类型传递给我的函数参数以分配内存。
mat allocate_mat(unsigned int l, unsigned int c, **<type>** )
也许,我应该为这个函数使用定义宏吗?
最佳答案
Maybe, should I use a define macro for this function ?
是的,你可以定义一个宏在最后一个参数中接受一个类型,并调用在最后一个参数中接受一个大小的真正的函数。
#define allocate_mat(MAT_L, MAT_C, MAT_TYPE) allocate_mat_sz(MAT_L, MAT_C, sizeof(MAT_TYPE))
mat allocate_mat_sz (unsigned l, unsigned c, size_t size);
关于c - 通用矩阵 : how to pass a type in a function argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16708329/