Réinitialiser un tableau

Résolu
Signaler
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Bonjour,


Je souhaiterais connaître une méthode pour réinitialiser un tableau précédement rempli. Par réinitialiser, je veux dire remettre à zéro et non remplacer les caractères par des espaces. Par tableau je pense à : "char montableau[200][2000];" .

Comment procéder à une telle opération et avec quelles fonctions?

...En C API Win32...






<hr />
Je vous remercie d'avance
à bientôt.








Nico

4 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
memset

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
je n'avais pas vu qu'il y a 2 dimensions.

Pas de boucle et encore moins de strlen.
memset(montableau, 0, 200 * 2000);
pour mettre tous les octets à 0.

Sinon juste le 1er octet de chaque chaine à 0:
for(i = 0; i != NB_LIGNES; ++i) montableau[i][0] = 0;

ciao...
BruNews, MVP VC++
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
Merci pour votre réponse, celà marche parfaitement.
J'ai utilisé :
for( i = 0 ; i != NB_LIGNES ; ++i ) {
     memset( montableau[i] , 0 , lstrlen(montableau[i]) );
}
Il existe sans doute une méthode plus rapide, mais celle-là semble bien marcher.

Pour plus d'information sur memset, il vous est possible de consulter la rubrique msdn : http://msdn2.microsoft.com/en-us/library/1fdeehz6(VS.80).aspx

<hr />Merci et à bientôt.

Nico
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
4
Merci pour les informations.


Désolé pour avoir écrit une information erronée...







Nico