#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *conv_idx(void *arr,int idxA,int idxB);
int main(int argc, char *argv[]) {
void *array[10];
void *temp_ptr = NULL;
int x,y,z,maxpage;
char maxval[10];
srand(time(NULL));
for(x = 0; x < 10; x++) {
array[x] = malloc(sizeof(char)*1000);
for(y = 0; y < 10; y++) {
for(z=0;z < 10; z++) {
sprintf(conv_idx(array[x],y,z),"%d",rand()%1000000000);
printf("array[%d][%d][%d] : %s\n",x,y,z,conv_idx(array[x],y,z));
}
}
}
maxval[0] = '\0';
maxpage=-1;
for(x=0;x<10;x++) {
for(y=0;y<10;y++) {
for(z=0;z<10;z++) {
if(strcmp(conv_idx(array[x],y,z),maxval) > 0) {
strcpy(maxval,conv_idx(array[x],y,z));
maxpage=x;
}
}
}
}
printf("Max is: %s on page %d\n",maxval,maxpage);
temp_ptr = array[maxpage];
array[maxpage] = array[0];
array[0] = temp_ptr;
for(x = 0; x < 10; x++) {
for(y = 0; y < 10; y++) {
for(z=0;z < 10; z++) {
printf("array[%d][%d][%d] : %s\n",x,y,z,conv_idx(array[x],y,z));
}
}
free(array[x]);
}
return 0;
}
char *conv_idx(void *arr,int idxA,int idxB) { return (char *)arr+idxA*100+idxB*10; }