Le pluriel des noms composés est souvent problématique en français. Pour trouver son chemin, il faut être attentif à la nature des mots qui composent le nom composite. De manière générale, les noms et les adjectifs tendent à s'accorder tandis que les verbes, les adverbes et les prépositions sont invariables.
Voici un résumé général des règles à appliquer:
1) nom + nom
a) quand le second joue le rôle d'un adjectif => les deux s'accordent (par exemple les choux-fleurs)
b) quand le second est complémentaire avec une préposition exprimée ou non => le premier accepte (ex: crocs, timbres (timbres pour la poste))
c) lorsque le prénom est incomplet (se terminant généralement par 'o' ou 'i') => le second match (par exemple, tragi-comédies)
exceptions: pot-au-feu, rez-de-chaussée
2) nom + adjectif ou adjectif + nom
Les deux sont d'accord => Exemple: coffres-forts, parterres de fleurs
3) adjectif + adjectif
Les deux sont d'accord sauf si l'un des adjectifs a la valeur d'adverbe (et ne peut donc pas être d'accord) ou pour les adjectifs de couleur => p.ex.: sourd-muet
4) verbe + nom
a) nom d'objet direct: accord du nom selon le sens mais verbe invariable
=> ex: dessus de lit (plusieurs lits), gratte-ciel
exceptions: ayants droit, successeurs
b) nom d'objet indirect: pas d'accord
=> par exemple: touche-à-tout
5) verbe + adverbe
pas d'accord => ex: passe-partout
6) verbe + verbe
pas d'accord => ex: étiquette
7) adverbe ou préposition + nom
En général, c'est le nom qui convient (par exemple: back-shops).
8) moitié + nom
Le nom est d'accord (ex: demi-heure).
9) garde + nom
a) lorsque "gardien" a la signification de tuteur: "garde" accepte et le nom est conforme à la signification => ex: infirmières
b) quand "garde" se réfère au verbe à garder: pas d'accord => par exemple: garde-manger
10) "grand" ou "franc" + nom ou adjectif
"gros" ou "franc" ne sont que des hommes => ex: grands-pères, grands-mères (peut aussi être écrit "grands-mères")