[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