Passage par adresse et tableau multidimensionnel

Signaler
Messages postés
3
Date d'inscription
mercredi 12 novembre 2008
Statut
Membre
Dernière intervention
20 janvier 2009
-
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
-
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

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