Если вам нужен массив массивов, вам следует использовать структуры.
typedef ArrayStruct* ArrayStructPtr;
struct ArrayStruct
{
void* array;//Node array
ArrayStructPtr arrays;//Pointer to sub arrays
};
int main()
{
ArrayStruct* a;//Declare Some Arrays
a=(ArrayStruct*)malloc(sizeof(ArrayStruct)*N);
for(int i=0;i<N;i++)
{
a[i].array=(void*)malloc(sizeof(int)*N);//Malloc the actual array
a[i].arrays=NULL;//Malloc subarrays if needed
}
//add subarray on array 0
ArrayStruck * temp=(ArrayStruct*)malloc(sizeof(ArrayStruct));
temp->array=(void*)malloc(sizeof(char)*MAXNAME*N);
temp->arrays=NULL;
a[0]=arrays=temp;
return 0;
}
Вам нужен список массивов, где каждый узел структуры может содержать массив и указатель на другой узел.Тип массива void * для поддержки int, float, char *.
Таким образом, каждый массив может иметь столько подмассивов, сколько вы хотите. Вы можете создать 3 массива измерений, если хотите!