Passer une structure à une fonction par pointeur

Je veux passer une structure à une fonction , que la fonction modifie les données de la structure, et la retourne modifiée à l'appelant. Je crois que cela se fait par pointeur. (Sans passer toutes les données) Quelqu'un aurait un exemple? Merci.

Ceci n'est pas un introductory tutorial.

(Apologies to René Magritte)

Déclarer simplement une structure et passer l'adresse de celle-ci à la fonction avec l'opérateur &.

struct person {
  char *name;
  int size;
  int age;
};
struct person myPerson =  {"Albert", 180, 18};

int func(struct person *p)
{
  Serial.print("name: "); Serial.println(p->name); 
  return 0;
}
void setup() {
}
void loop(void) {
  func(&myPerson);
}

La fonction manipule les éléments avec -> ( p->name par exemple).
La fonction n'a pas besoin de retourner la structure, puisque l'appelant la connaît déjà.

Ou alors passer la structure par référence à la fonction


struct t_person {
  const char *name;
  int size;
  int age;
};
t_person myPerson =  {"Albert", 180, 18};

void func(struct person &p) {
  Serial.print("age: "); Serial.println(p.age); 
  p.age = 100;
}
void setup() {
  serial.begin(115200);
  func(myPerson);
  Serial.print("age: "); Serial.println(p.age); 
}

void loop(void) {}