[ Foro de C ]

ARREGLOS Y APUNTADOR

28-Nov-2015 21:36
jose pozada
3 Respuestas

Que tal banda. quisiera saber si es posible declarar un apuntador dentro de un arreglo, por ejemplo:


int ID_ADDRESS=0x00;
int *punt=&ID_ADDRESS;
int array[3]={0x00,0xAA,*punt}


lo que quiero es que el tercer elemento del arreglo apunte a la variable ID_ADRESSS
 GRACIAS!!!


05-Dec-2015 13:30
Nacho Cabanes (+83)

En general, eso no se podrá hacer, o al menos en en todos los sistemas: tu array es un "int" (típicamente un dato de 32 bits), mientras que un "puntero" es un dato entero, pero quizá no del mismo tamaño, porque en un sistema moderno es habitual que una dirección de memoria sea de 64 bits, y no se podría guardar en un array de 32 bits. Aun así, en un sistema (tolerante) de 32 bits, tu propuesta se acerca mucho a lo correcto, pero al escribir *punt dentro del array, no estás guardando el puntero sino el valor contenido en esa posición de memoria. Sería: int array[3]={0x00,0xAA, punt}


07-Dec-2015 22:01
jose pozada

Que tal, ya intenté hacer lo que dijiste pero me marco un error el cual dice que la expresión debe de ser un valor constante, estoy trabajando en el Code Composer de texas instrument para programar un microcontrolador.
entonces me comentas que en general no puedo guardar un puntero dentro de un arrgelo... se puede resolver el problema de otra forma??
GRACIAS


17-Dec-2015 13:37
Nacho Cabanes (+83)

Sin ver más detalles, es difícil. No sé qué limitaciones tiene ese tal Code Composer, pero si no te permite poner valores que no sean constantes en el momento de inicializar el array, siempre pueden cambiar posteriormente con construcciones como


array[2] = 5;


(El que esas construcciones permitan usar valores a partir de punteros o no, es algo que depende de cada sistema).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)