C: Quelle est la meilleure façon de modifier un pointeur int passé via un typedef?

StackOverflow https://stackoverflow.com/questions/542238

  •  23-08-2019
  •  | 
  •  

Question

J'ai un typedef int my_type et j'ai une fonction qui ressemble à

void my_func (my_type* x);

Comment dois-je utiliser cette func pour modifier x en utilisant les meilleures pratiques?

Était-ce utile?

La solution

Vous pouvez utiliser l'opérateur déréférencement « * » dans votre fonction:

void my_func (my_type* x)
{
  assert(x); // To protect from NULL pointer as mentioned in com.

  *x = 5; //for example
}

Autres conseils

Si vous utilisez typedef vous créez essentiellement un nouveau type. Comme tous les autres types, il suffit d'utiliser le type comme un autre. Assurez-vous d'être compatible avec dactylographiée - si vous utilisez my_type pour une variable utiliser partout pour cette variable. Si vous passez ce type à une utilisation de la fonction de ce type dans la fonction, même si vous savez que le type est tout simplement un int. Et ainsi de suite ...

Si vous souhaitez modifier par la réponse de l'utilisation d'affectation claferri. Si vous souhaitez modifier un élément (si my_type est un struct) faire:

void my_func(my_type* x) {
  x->member = 5;
}

Utilisez l'opérateur * pour déréférencer x!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top