#include <stdlib.h>
#include <string.h>
#include <stdio.h>
void search(void ***m,void *x,size_t memb_size,int len_x,int len_y,int *i,int *j)
{
typedef void *m_type[len_x][len_y];
m_type *m_ref=(m_type*)m;
for(*i=0;*i<len_x;*i+=1)
{
for(*j=0;*j<len_y;*j+=1)
{
if(!memcmp((*m_ref)[*i][*j],x,memb_size))
{
return;
}
}
}
*i=*j=-1;
}
int main()
{
int v0_0 = 1;
int v0_1 = 2;
int v0_2 = 3;
int v0_3 = 4;
int v1_0 = 5;
int v1_1 = 6;
int v1_2 = 7;
int v1_3 = 8;
int v2_0 = 9;
int v2_1 = 10;
int v2_2 = 11;
int v2_3 = 12;
void * m[3][4];
m[0][0] = &v0_0;
m[0][1] = &v0_1;
m[0][2] = &v0_2;
m[0][3] = &v0_3;
m[1][0] = &v1_0;
m[1][1] = &v1_1;
m[1][2] = &v1_2;
m[1][3] = &v1_3;
m[2][0] = &v2_0;
m[2][1] = &v2_1;
m[2][2] = &v2_2;
m[2][3] = &v2_3;
int x = 8;
int i, j;
search((void***) m, &x, sizeof(x), 3, 4, &i, &j);
printf("i: %d, j: %d\n", i, j);
return 0;
}