hello,
I have some problem with my project in C. I want do define a generic type of matrix. with this type I can save any kind of type(int, double, float...). but I have some errors in my code. if someone can help me I'll be very gratefull. the code is:

typedef struct arr{

void * p_arr;

}arr;


typedef struct matrix{


arr * p_mat;

char* name;

int size_h;

int size_w;

int type;

}matrix;




matrix matrix_zeroes(int i,int j) //returen pointer to matrix (ixj)

{

int n=0,m=0;

matrix mat;

mat.size_h=i;

mat.size_w=j;

mat.name="matrix_zeroes";


mat.p_mat = (arr*)(malloc(i*sizeof(arr)));


for(n=0;n<i;n++)

(int*)mat.p_mat[n].p_arr=(int*)(malloc(j*sizeof(int)));

for(n=0;n<i;n++)

for(m=0;m<j;m++)

mat.p_mat[n].p_arr[m]=0;


return mat;

}



void matrix_print(matrix mat)

{

int m,n;

int i=mat.size_h,j=mat.size_w;

for(n=0;n<i;n++)

{

for(m=0;m<j;m++)

printf(" %d ",(int)(mat.p_mat[n].p_arr[m]));

printf("\n");

}

}

the errors is :
error C2036: 'void *' : unknown size
error C2120: 'void' illegal with all types
error C2036: 'void *' : unknown size
error C2069: cast of 'void' term to non'void'
========== Build: 0 succeeded, 1 failed, 0 uptodate, 0 skipped ==========
thanks to all,
mos