Passage par adresse et tableau multidimensionnel

Shuugeki Messages postés 3 Date d'inscription mercredi 12 novembre 2008 Statut Membre Dernière intervention 20 janvier 2009 - 20 janv. 2009 à 17:00
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 20 janv. 2009 à 21:12
Bonjour, je dois pour mes cours créer une fonction comptant le nombre de chaque caractère de l'alphabet contenu dans un mot, j'utilise pour sauvegarder les résultats un tableau à 28 colonnes, 2 lignes déclaré comme ceci en main

int count[28][2];

et initialisé par

i=0;
j=65;
for(i=0;i<28;i++)
{
        count[i][0]=0;
}
for(i=0;i<=25;i++)
{
        count[i][1]=j;
        j++;
}

Dans ma fonction je le passe en pointeur

void comp(char *mot, char *count)                        //mot est le tableau contenant la chaine de caractère à traiter

En plus d'avoir à compter le nombre chaque caractère de l'alphabet je dois compter le nombre de caractère spéciaux (le total) et le nombre de caractères total (faire un strlen en gros). Les cases [26] et [27] de mon tableau count servent à sauver ces données.

pour compter le nombre de caractère je fais simplement

int i=0;
while(mot[i]!=`\0')
{
        count[27][0]++;                        /*J'ai aussi testé avec un count[27][0]=count[27][0]+1 au cas où                                                                                  l'incrémentation  ne fonctionnerait   pas sur tableau, mais ça ne change rien*/
        i++;
}

Le problème, et il se posera aussi pour les autres buts de la fonction vu que je dois passer mon temps à sauver des données de cette façon est qu'à la compilation j'ai le message d'erreur "subscripted value is neither array nor pointer" pour la ligne où j'incrémente le compteur dans le tableau.
Je pense que mon soucis viens d'un problème de pointeur sur tableau multidimensionnel, mais après recherches je n'ai pas trouvé comment régler ceci ou alors, pas compris.

Si quelqu'un pourrait m'expliquer comment gérer le passage par adresse / les pointeurs sur tableau multidimensionnel, ou me dire si mon erreur vient d'autre part, merci beaucoup.

Shuu.

1 réponse

racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
20 janv. 2009 à 21:12
Salut,
Tu peux faire:
void comp(char *mot, int count[28][2]) 
{
    //...
}
0