#include <stdio.h>
#include <stdlib.h>
typedef enum {
INT, FLOAT, DOUBLE
} Type;
void initMat(Type type, int matSize, void **matA, void **matB, void **matC){
switch(type) {
case INT :
*matA
= malloc(matSize
* sizeof(int*)); *matB
= malloc(matSize
* sizeof(int*)); *matC
= malloc(matSize
* sizeof(int*)); int **matA_i = *matA;
int **matB_i = *matB;
int **matC_i = *matC;
for (int i = 0; i < matSize; i++) {
matA_i
[i
] = malloc(matSize
* sizeof(int)); matB_i
[i
] = malloc(matSize
* sizeof(int)); matC_i
[i
] = malloc(matSize
* sizeof(int)); for (int j = 0; j < matSize; j++) {
matA_i
[i
][j
] = rand() % 11; matB_i
[i
][j
] = rand() % 11; matC_i[i][j] = 0;
}
}
break;
case FLOAT :
case DOUBLE :
//not yet
*matA = NULL; *matB = NULL; *matC = NULL;
break;
default :
}
}
void displayMat(Type type, int matSize, void *matA){
switch(type){
case INT:
{
int **mat = matA;
for(int i = 0; i < matSize; ++i){
for(int j = 0; j < matSize; ++j){
if(j)
}
}
}
break;
default:
}
}
int main(void){
Type type = INT;
int size = 0;
void *matA, *matB, *matC;
int sizes[6] = {3, 4, 5};
int matSize = sizes[size];
printf("The selected matrix size is: %d.\n", matSize
);
initMat(type, matSize, &matA, &matB, &matC);
displayMat(type, matSize, matA);
//deallocate mat
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgZW51bSB7CglJTlQsIEZMT0FULCBET1VCTEUKfSBUeXBlOwoKdm9pZCBpbml0TWF0KFR5cGUgdHlwZSwgaW50IG1hdFNpemUsIHZvaWQgKiptYXRBLCB2b2lkICoqbWF0Qiwgdm9pZCAqKm1hdEMpewoJc3dpdGNoKHR5cGUpIHsKCWNhc2UgSU5UIDoKCQkqbWF0QSA9IG1hbGxvYyhtYXRTaXplICogc2l6ZW9mKGludCopKTsKCQkqbWF0QiA9IG1hbGxvYyhtYXRTaXplICogc2l6ZW9mKGludCopKTsKCQkqbWF0QyA9IG1hbGxvYyhtYXRTaXplICogc2l6ZW9mKGludCopKTsKCQlpbnQgKiptYXRBX2kgPSAqbWF0QTsKCQlpbnQgKiptYXRCX2kgPSAqbWF0QjsKCQlpbnQgKiptYXRDX2kgPSAqbWF0QzsKCQkKCQlmb3IgKGludCBpID0gMDsgaSA8IG1hdFNpemU7IGkrKykgewoJCQltYXRBX2lbaV0gPSBtYWxsb2MobWF0U2l6ZSAqIHNpemVvZihpbnQpKTsKCQkJbWF0Ql9pW2ldID0gbWFsbG9jKG1hdFNpemUgKiBzaXplb2YoaW50KSk7CgkJCW1hdENfaVtpXSA9IG1hbGxvYyhtYXRTaXplICogc2l6ZW9mKGludCkpOwoJCQlmb3IgKGludCBqID0gMDsgaiA8IG1hdFNpemU7IGorKykgewoJCQkJbWF0QV9pW2ldW2pdID0gcmFuZCgpICUgMTE7CgkJCQltYXRCX2lbaV1bal0gPSByYW5kKCkgJSAxMTsKCQkJCW1hdENfaVtpXVtqXSA9IDA7CgkJCX0KCQl9CgkJYnJlYWs7CgoJY2FzZSBGTE9BVCA6CgljYXNlIERPVUJMRSA6CgkJLy9ub3QgeWV0CgkJKm1hdEEgPSBOVUxMOyAqbWF0QiA9IE5VTEw7ICptYXRDID0gTlVMTDsKCQlicmVhazsKCglkZWZhdWx0IDoKCQlwcmludGYoIkludmFsaWQgY2FzZS5cbiIgKTsKCX0KfQoKdm9pZCBkaXNwbGF5TWF0KFR5cGUgdHlwZSwgaW50IG1hdFNpemUsIHZvaWQgKm1hdEEpewoJc3dpdGNoKHR5cGUpewoJY2FzZSBJTlQ6Cgl7CgkJaW50ICoqbWF0ID0gbWF0QTsKCQlmb3IoaW50IGkgPSAwOyBpIDwgbWF0U2l6ZTsgKytpKXsKCQkJZm9yKGludCBqID0gMDsgaiA8IG1hdFNpemU7ICsrail7CgkJCQlpZihqKQoJCQkJCXB1dGNoYXIoJyAnKTsKCQkJCXByaW50ZigiJWQiLCBtYXRbaV1bal0pOwoJCQl9CgkJCXB1dGNoYXIoJ1xuJyk7CgkJfQoJfQoJCWJyZWFrOwoJZGVmYXVsdDoKCQlwcmludGYoIm5vdCB5ZXRcbiIpOwoJfQp9CgppbnQgbWFpbih2b2lkKXsKCVR5cGUgdHlwZSA9IElOVDsKCWludCBzaXplID0gMDsKCXZvaWQgKm1hdEEsICptYXRCLCAqbWF0QzsKCglpbnQgc2l6ZXNbNl0gPSB7MywgNCwgNX07CglpbnQgbWF0U2l6ZSA9IHNpemVzW3NpemVdOwoJcHJpbnRmKCJUaGUgc2VsZWN0ZWQgbWF0cml4IHNpemUgaXM6ICVkLlxuIiwgbWF0U2l6ZSk7CgoJaW5pdE1hdCh0eXBlLCBtYXRTaXplLCAmbWF0QSwgJm1hdEIsICZtYXRDKTsKCglkaXNwbGF5TWF0KHR5cGUsIG1hdFNpemUsIG1hdEEpOwoJLy9kZWFsbG9jYXRlIG1hdAoKfQ==