En C/C++, la inicialización de arrays multidimensionales puede haber dejado la mayoría de las dimensiones como opcionales. Excepto la dimensión más a la izquierda, se deben especificar todas las demás dimensiones.
Por ejemplo, el siguiente programa falla en la compilación porque no se especifican dos dimensiones.
C
#include<stdio.h> int main() { int a[][][2] = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} }; // error printf("%d", sizeof(a)); getchar(); return 0; }
C++
#include<bits/stdc++.h> using namespace std; int main() { int a[][][2] = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} }; // error cout << sizeof(a); getchar(); return 0; } // This code is contributed by Mayank Tyagi
Los siguientes 2 programas funcionan sin ningún error.
C
// Program 1 #include<stdio.h> int main() { int a[][2] = {{1,2},{3,4}}; // Works printf("%lu", sizeof(a)); // prints 4*sizeof(int) getchar(); return 0; }
C++
// Program 1 #include<bits/stdc++.h> using namespace std; int main() { int a[][2] = {{1, 2}, {3, 4}}; // Works cout << sizeof(a); // prints 4*sizeof(int) return 0; } // This code is contributed by Mayank Tyagi
C
// Program 2 #include<stdio.h> int main() { int a[][2][2] = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} }; // Works printf("%lu", sizeof(a)); // prints 8*sizeof(int) getchar(); return 0; }
C++
// Program 2 #include<bits/stdc++.h> using namespace std; int main() { int a[][2][2] = { {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}} }; // Works cout << sizeof(a); // prints 8*sizeof(int) return 0; } // This code is contributed by Mayank Tyagi
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA