[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]root wrote: > Hola a todos > tengo el siguiente problema > si tengo ( en C ); > > typedef struct { > int variable; > int *puntero; > } estructura; > > y luego en una funcion declaro > > estructura mi_estructura; > > aqui estoy un poco confundido... > como le hago para; > > que 'mi_estructura.puntero' apunte a un valor > que mediante 'mi_estructura.puntero' pueda modificar un valor de otra > variable (del mismo tipo, claro) y que mediante 'mi_estructura.puntero' > accese a valores de otras variables. > > y me confundo aun peor cuando se necesita hacer eso con punteros a > estructuras > como 'tu_estructura->puntero' y cosas por el estilo. > > grachie a todos > > +++++ > +T.O+ > +++++ Check that folk. Si yo escribi el programita y lo voy a registrar como gnu (Que simpatico no) #include<stdio.h> //Coontribucion del amigo root ritsa en df1 telmex net mx (que nombre tan raro no). typedef struct { int variable; int *puntero; } estructura; main() { int a, b, c; estructura mi_estructura; a = 15; b = 523; mi_estructura.variable = a; // mi_estructura.puntero ya es un apuntador no hay que usar ningun tipo de dereferencia // y tomamos la direccion de b mi_estructura.puntero = &b; printf("a = %d, b = %d\n", a, b); mi_estructura.variable = 20; //Precisamente porque mi_estructura.puntero es un apuntador y queremos modificar el valor al que apunta (en este caso B ) //usamos el operador de dereferencia * *mi_estructura.puntero = 678; printf("a = %d, b = %d\n", a, b); } //fin de programa Nota que en ningun momento utilizamos el operador -> (flecha) esto es porque este operador se usa cuando declaras apuntadores a estructuras (que nada tienen que ver con apuntadores como miembors de una estructura) en este caso pudimos declarar algo como estructura *p_mi_estructura, mi_estructura; y hacer algo como p_mi_estructura = & mi_estructura; tal cual lo haces con los tipos de datos comunes. y entonces si es totalmente valido hacer p_mi_estructura->variable = 20; *p_mi_estructura->puntero = 678; Se nota la diferencia! Si no pues pregunta! Suerte!