8.9) Punteros y Arrays Multidimensionales.

     

     Como un array unidimensional puede ser representado en términos de punteros (el nombre del array) y de un desplazamiento (el índice), es razonable esperar que los arrays multidimensionales puedan ser representados con una notación equivalente de punteros. En realidad, un array bidimensional es una colección de arrays unidimensionales. Por tanto, podemos definir un array bidimensional, como un puntero a un grupo contiguo de arrays unidimensionales. Una declaración de un array bidimensional puede escribirse como sigue:
     
     

     
     
     

    en lugar de lo que ya conocemos:
     
     

     
       

     

    igualmente podemos generalizarlo para arrays multidimensionales:
     
     

     
     
     
     

    que reeemplaza a:
     
     

     
     
     

     En estas declaraciones aclararemos que:

       
       
      tipo-dato   es el tipo de datos del array.
       
      array  es el nombre del array.
       
      expresión 1, expresión2,... son expresiones enteras positivas que indican el máximo número de elementos del array con cada índice.

       
     Es IMPORTANTE que nos fijemos en los paréntesis que rodéan el nombre del array (ptvar en este caso),  y el asterísco (*) que lo precede en la versión de puntero de cada declaración. Estos paréntesis deben estar presentes. Sin ellos estaremos definiendo un array de punteros (que serán vistos en el apartado siguiente 8.10)  en vez de un puntero a un grupo de arrays, ya que estos símbolos particulares (los paréntesis cuadrados ([ ]) y el asterísco (*)) se evalúan de derecha a izquierda. El apartado siguiente 8.10 nos ayudará a comprender todo esto mejor.
     
     

     Ejemplo: Posteriormente se muestra como se introducen valores en un array bidimensional de punteros con reserva de memoria previa de 3 filas y 3 columnas de elementos.