[C con Clase] Puntero a Array

Marving jr.marving en gmail.com
Mar Abr 1 17:59:53 CEST 2014


Soy nuevo en esto de c++. Tratando de conseguir algo de confianza con los
punteros, tropezé con la preferencia entre * y [] y de ahí surgió.

int (*ptr0) [5];

Parece ser que esto es Puntero a un array  de 5 entero
Pero no entiendo el concepto.
En el siguiente programa si intento apuntar a un array de 5 enteros como es
int array[5] con ptr0 de este modo
         int (*ptr0) [5] = array;
obtengo
         cannot convert ‘int*’ to ‘int (*)[5]’ in initialization




int array[5] = {100, 200, 300, 400, 500};
    
    int* arr_ptr[5];                    // Array 5 punteros a enteros
    int** ptr_ptr  = arr_ptr;           // Puntero a Puntero 
    
    for (int i = 0; i < 5; i++)
    {
          // Almaceno 5 punteros en arr_ptr[]
          //arr_ptr[i] = &array[i];  -- Cualquiera sentecia --- vale
          arr_ptr[i] = array + i;
    }
        
    for (int i = 0; i < 5; i++)
    {
        cout <<  array[i] << " " << *arr_ptr[i] << " " << **(arr_ptr + i);
        cout << " " << **(ptr_ptr + i) << endl;
    }

Saludos


Más información sobre la lista de distribución Cconclase