Probleme de pointeur en C

Résolu/Fermé
ollie314 Messages postés 145 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 26 octobre 2007 - 25 juil. 2005 à 04:15
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 - 25 juil. 2005 à 13:11
Bonjour

Voila je suis en plein apprentissage du C et j'ai un petit problem avec les pointeurs , la fonction suivante ne fonctionne pas

void inittab( char tab[32])
{
int i =0;
while( i <= 31)
{
tab[i] = '';
i++;
}
}

quelqu'un peu t il me dire pourquoi ça ne fonctionne pas ??? !!!!
erreur : emptu character constant

merci d'avance .

3 réponses

XtremDev Messages postés 3 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 25 juillet 2005
25 juil. 2005 à 08:21
l'erreur est très simple, tu as écris :

tab[i] = '';

or le caractère '' (donc rien) n'existe pas !!!!!
d'ou l'erreur "empty caracter constant"

pour initialiser ton tableau, il faut l'affecter avec un caractère qui existe...

tu peux écrire :

tab[i] = ' '; // espace = 32 ou 0x20
ou tab[i] = 0;

sinon, question optimisation, tu pourrais écrire :

void InitTab( char tab[32], char c )
{
memset(tab, c, 32);
}
0
ollie314 Messages postés 145 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 26 octobre 2007 80
25 juil. 2005 à 12:43
bonjour,

merci pour le coup de main !!
0
Luffy =) Messages postés 365 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 19 mai 2006 110
25 juil. 2005 à 13:11
salut =)

et j'ajouterais pour la forme que pour toutes les boucles où tu connais le nb de fois où tu vas boucler, il vaut mieux utiliser un for :
int i=0;
for(i=0; i <= 31; i++)
          tab[i]=' ';
les while c'est bien, les for c'est mieux !
0