Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Lieutenant McFarley en 1 Abril 2022, 17:06 pm



Título: elemento de matriz es subindice de otra
Publicado por: Lieutenant McFarley en 1 Abril 2022, 17:06 pm
Se tienen dos matrices 1 y 2 de int con igual numero de filas columnas. Un elemento de una matriz puede ser el índice de una fila de la otra matriz. Es válido escribir?
Código:
matriz_1 [ (matriz_2 [i][j]) ] [k]
o habria que buscar otra variable
Código:
int var = matriz_2 [i][j]
y luego referir a
Código:
matriz_1 [var][k]
?


Título: Re: elemento de matriz es subindice de otra
Publicado por: K-YreX en 1 Abril 2022, 21:08 pm
Se tienen dos matrices 1 y 2 de int con igual numero de filas columnas. Un elemento de una matriz puede ser el índice de una fila de la otra matriz. Es válido escribir?
Código:
matriz_1 [ (matriz_2 [i][j]) ] [k]
o habria que buscar otra variable
Código:
int var = matriz_2 [i][j]
y luego referir a
Código:
matriz_1 [var][k]
?

La primera sintaxis que propones es válida, además los paréntesis no son necesarios:
Código
  1. matriz1[matriz2[i][j]][k]
Esto lo puedes anidar tantas veces como quieras, pero ten en cuenta que dificultará mucho su posterior lectura y sobre todo si tienen que leerlo terceras personas.

Por otro lado, quiero recalcar la frase que he marcado de tu cita original:
Que dos matrices tengan el mismo número de filas/columnas no asegura que ese acceso vaya a ser correcto.
La condición necesaria es: que todos los elementos de la matriz2 (interna) sean menores al número de filas/columnas de la matriz1 (externa) o en su defecto hacer esa comprobación antes de intentar acceder a dicho índice.