Buenas, quiero hacer un array de 4 dimensiones en C, pero una vez inicializado el programa consume 1.4GB de RAM, y no conviene...
Dado que en realidad son caracteres lo que represento, en php lo haria así $stats["$a$b"]["$c$d"];
Necesito tener en el primer indice un string de 2 letras de largo y en el segundo igual. Pero como en C no se puede poner indices como strings, he pensado en hacerlo así:
stats[a][b][c][d]; y claro, el problema está en que tengo que alojar en la memoria para evitar fallos de segmentación.
El codigo de inicialización es el siguiente:
Código C:
Ver originalstats
= (int ****)malloc(256 * sizeof(int ***)); int a, b, c, d;
for(a = 0; a <256; a++) {
stats
[a
] = (int ***)malloc(256 * sizeof(int **)); for(b = 0; b < 256; b++) {
stats
[a
][b
] = (int **)malloc(dif
* sizeof(int *)); for (c = 0; c < dif; c++) {
stats
[a
][b
][c
] = (int *)malloc(dif
* sizeof(int)); for (d = 0; d < dif; d++) {
stats[a][b][c][d] = 0;
}
}
}
}
dif en este caso es 74, pero es variable.
256 x 256 x 74 x 74 x 4 (tamaño de un int) = 1.4Gb...
Alguna solución?