que - punteros como parametros de funciones en c
¿Cómo trabajar con puntero a puntero para estructurar en C? (4)
Debido a la precedencia del operador, debe poner paréntesis alrededor de esto:
(*foo)->member = 1;
Quiero cambiar miembro de estructura bajo doble puntero. ¿Sabes cómo?
Código de ejemplo
typedef struct {
int member;
} Ttype;
void changeMember(Ttype **foo) {
//I don`t know how to do it
//maybe
*foo->member = 1;
}
Puede usar una variable de temperatura para mejorar la legibilidad. Por ejemplo:
Ttype *temp = *foo;
temp->member = 1;
Si tiene el control de esto y le permite usar C ++, la mejor manera es usar la referencia. Por ejemplo:
void changeMember(Ttype *&foo) {
foo->member = 1;
}
maybe (* foo) -> member = 1 (si está dinámicamente asignado)
Tratar
(*foo)->member = 1;
Necesitas usar explícitamente el * primero. De lo contrario, es un intento de desreferencia miembro.