Le man de la fonction memcmp

🎯 Comparer deux blocs de mémoire octet par octet.

⚙️ Prototype de memcmp

				
					int memcmp(const void *s1, const void *s2, size_t n);
				
			

🧑‍💻 Fonctionnement de memcmp

La fonction memcmp compare les premiers n octets des zones mémoire pointées par s1 et s2. Elle retourne un entier qui indique la relation entre les deux blocs de mémoire :

    • Si les deux blocs de mémoire sont identiques, memcmp retourne 0.
    • Si la première différence se trouve à un octet où le contenu de s1 est inférieur à celui de s2, memcmp retourne un entier négatif.
    • Si la première différence se trouve à un octet où le contenu de s1 est supérieur à celui de s2, memcmp retourne un entier positif.

Cette fonction est souvent utilisée pour comparer des zones mémoire de manière binaire, utile pour comparer des chaînes de caractères, des structures, ou d’autres types de données.

Paramètres :

  • s1 : Un pointeur vers le premier bloc de mémoire à comparer.
  • s2 : Un pointeur vers le second bloc de mémoire à comparer.
  • n : Le nombre d’octets à comparer.

Retour :

Retourne un entier négatif, nul, ou positif selon que le bloc mémoire pointé par s1 est respectivement inférieur, égal, ou supérieur au bloc mémoire pointé par s2.

Remarques :

  • memcmp est particulièrement utile pour comparer des blocs de mémoire de manière binaire, ce qui est essentiel pour les opérations de bas niveau et les comparaisons rapides de données.

  • Attention : memcmp compare les données en binaire, ce qui signifie que des différences mineures, même dans des bits non significatifs, peuvent entraîner des résultats non intuitifs. Utilisez cette fonction lorsque vous avez besoin d’une comparaison exacte des valeurs mémoire.

✨ Exemple d'utilisation de memcmp

Comparaison de Structures :
👉 Ici, memcmp est utilisé pour comparer deux structures Point octet par octet.

				
					int array1[] = {1, 2, 3, 4, 5};
int array2[] = {1, 2, 3, 4, 6};

if (memcmp(array1, array2, 4 * sizeof(int)) == 0) {
    printf("Les quatre premiers éléments des tableaux sont identiques.\n");
} else {
    printf("Les quatre premiers éléments des tableaux diffèrent.\n");
}
				
			

Voir aussi :

  • memcmp : Comparaison de blocs de mémoire binaire.
  • memcpy : Copie des blocs de mémoire d’une zone vers une autre.
  • memmove : Déplace des blocs de mémoire, même s’ils se chevauchent.
  • strcmp : Compare des chaînes de caractères de manière lexicographique.
Retour en haut