[C con Clase] Ayuda con array de arrays de arrays
srd4121 en njit.edu
srd4121 en njit.edu
Sab Dic 13 12:58:14 CET 2008
Hola Nuria,
Bueno, David ya te ha contestado, pero quisiera agregar unos cuantos
comentarios a lo dicho.
Sugiero usar el operador 'reinterpret_cast<>' ya que estamos usando C++. Esto
indica al compilador y a nosotros mismos que queremos cambiar el tipo de dato
sin modificar la información binaria. Por lo tanto, tendríamos lo siguiente,
char *A[4];
A[0] = reinterpret_cast< char * >( new char*[ atoi(argv[1]) ] );
A[1] = new char[ atoi(argv[2]) ]; // Cadena de caracteres
Como bien mencionaste, tienes que acceder a cada puntero de 'A[0]' para
manipular cada elemento como si fuese un puntero. Para esto, tendrás que
realizar un "cásting" para volver a reinterpretar el valor del tipo
original: 'char **'. Por ejemplo,
char **B = reinterpret_cast< char ** >( A[0] );
B[0] = reinterpret_cast< char * >( new int[1234] );
B[1] = reinterpret_cast< char * >( new long double[5678] );
B[2] = reinterpret_cast< char * >( new bool[90] );
No sé si tienes pensado crear arrays de diferentes tipos, pero así lo he hecho
en este ejemplo. Sugiero crear una función que realice estas conversiones,
porque si no va a ser muy engorroso escribir todo esto cada vez que quieras
acceder a un elemento de 'A[0]'.
Espero que esto te sirva.
Steven
Más información sobre la lista de distribución Cconclase