Estrictamente hablando, depende de su combinación de compilador y arquitectura de CPU. Modificando un poco tu ejemplo:
struct node {
int cn[9];
} ed1[1000]; int ed2[1000][9];
struct node {
int cn[9];
} ed1[1000]; int ed2[1000][9];
- ¿Deberíamos usar un árbol rojo-negro con más frecuencia para abordar los problemas de integridad de NP? ¿Es esto cierto?
- ¿Cómo funciona el algoritmo de cubos de marcha?
- Cómo crear un árbol binario de búsqueda binaria para los datos: 10, 8, 15, 7, 3, 6, 12, 5, 9,17
- ¿Cómo analizaría la complejidad temporal de fibbonacci?
- ¿Cuál es la diferencia entre recursividad e iteración?
un compilador en una arquitectura de 64 bits con
s de 32 bits podría rellenar el int
a un límite de 64 bits, en cuyo caso struct node
pero sizeof ed1 == 40000
. La mayoría de los compiladores no lo harían, pero el estándar C lo permite. sizeof ed2 == 36000
En cuanto a cuál es mejor, depende de si el
tiene algún significado fuera de struct node
(por ejemplo, modela un objeto real). Si es así, entonces ed1
sería más apropiado que ed1[30].cn[5]
, y el primero le permite agregar parámetros adicionales en una fecha posterior. ed2[30][5]