Réinitialiser un tableau

Résolu
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 14 juin 2007 à 22:22
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 - 15 juin 2007 à 23:18
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 juin 2007 à 22:29
memset

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 juin 2007 à 23:02
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++
3
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
14 juin 2007 à 22:45
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
0
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
15 juin 2007 à 23:18
Merci pour les informations.


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







Nico
0
Rejoignez-nous