Utiliser memset avec unsigned long *ma_variable

Signaler
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Bonjour,

Je possède une variable unsigned long *ma_variable = malloc( sizeof(unsigned long) * 10 ); que je souhaiterais remplir de 0, j'ai alors penser à la fonction memset() mais le problème c'est que lorsque je fait memset(ma_variable,0,sizeof(ma_variable)); tous les caractères ne sont pas remis à zéro. Je me suis alors rendu sur MSDN et est trouvé cela http://msdn.microsoft.com/en-us/library/1fdeehz6(VS.71).asp : il semblerait que memset soit fait pour les char* et non les int*.

Puis-je utiliser memset() avec mon int *ma_variable ?
memset( ma_variable, 0, _msize(ma_variable) ); est-il la solution ?

Merci d'avance pour vos réponses et à bientôt !
A voir également:

2 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Commence déjà par regarder le prototype de memset :
void *memset(void *s, int c, size_t n);

En quoi est-ce que c'est fait pour les char* et non les int* ? Si elle prend un void* c'est pour tout accepter comme pointeur. maintenant relis son fonctionnement :
«The  memset()  function  fills  the  first  n  bytes of the memory area pointed to by s with the constant byte c.»
Rien qu'avec ça tu devrais réaliser ton erreur et la corriger. Au cas où tu peine, regarde plus précisément ce qu'est exactement le dernier paramètre de la fonction et compare avec ce que tu as écrit dans l'appel a memset et celui a malloc.

Conclusion: vive le man :)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
ma_variable étant un pointeur:sizeof(ma_variable) 4 !!! 8 si tu compiles en x64.


int i = 9; // DERNIER ELEM
do {
  ma_variable[i] = 0;
} while(--i >= 0);


ah que voila du memset ...

ciao...
BruNews, MVP VC++