logo

memset() en C avec exemples

jeu de mémoires() est utilisé pour remplir un bloc de mémoire avec une valeur particulière.
La syntaxe de la fonction memset() est la suivante :

 // ptr ==>Adresse de début de la mémoire à remplir // x ==> Valeur à remplir // n ==> Nombre d'octets à remplir à partir // de ptr à remplir void *memset(void *ptr, int x, size_t n );>

Notez que ptr est un pointeur vide, afin que nous puissions passer n'importe quel type de pointeur à cette fonction.



Voyons un exemple simple en C pour démontrer comment la fonction memset() est utilisée :








// C program to demonstrate working of memset()> #include> #include> > int> main()> {> >char> str[50] =>'GeeksForGeeks is for programming geeks.'>;> >printf>(>' Before memset(): %s '>, str);> > >// Fill 8 characters starting from str[13] with '.'> >memset>(str + 13,>'.'>, 8*>sizeof>(>char>));> > >printf>(>'After memset(): %s'>, str);> >return> 0;> }>

comment avoir du gibier à plumes sur Android

>

>

Sortir:

 Before memset(): GeeksForGeeks is for programming geeks. After memset(): GeeksForGeeks........programming geeks.>

Explication: (str + 13) pointe vers le premier espace (index basé sur 0) de la chaîne GeeksForGeeks est destiné aux geeks de la programmation., et memset() définit le caractère '.' chaîne et nous obtenons donc le résultat comme indiqué ci-dessus.

ensemble c++




// C program to demonstrate working of memset()> #include> #include> > void> printArray(>int> arr[],>int> n)> {> >for> (>int> i=0; i printf('%d ', arr[i]); } int main() { int n = 10; int arr[n]; // Fill whole array with 0. memset(arr, 0, n*sizeof(arr[0])); printf('Array after memset() '); printArray(arr, n); return 0; }>

>

>

Sortir:

 0 0 0 0 0 0 0 0 0 0>


Exercice :

Prédisez la sortie du programme ci-dessous.

convertir la date de la chaîne




// C program to demonstrate working of memset()> #include> #include> > void> printArray(>int> arr[],>int> n)> {> >for> (>int> i=0; i printf('%d ', arr[i]); } int main() { int n = 10; int arr[n]; // Fill whole array with 100. memset(arr, 10, n*sizeof(arr[0])); printf('Array after memset() '); printArray(arr, n); return 0; }>

>

>

Notez que le code ci-dessus ne définit pas les valeurs du tableau sur 10 car memset fonctionne caractère par caractère et qu'un entier contient plus d'un octet (ou caractères).

chaîne de date java

Cependant, si nous remplaçons 10 par -1, nous obtenons des valeurs -1. Parce que la représentation de -1 contient tous les 1 dans le cas de char et d'int.

Référence: page de manuel memset (linux)