Probleme pour rajouter une fonction [Fermé]

Signaler
Messages postés
1
Date d'inscription
dimanche 7 novembre 2004
Statut
Membre
Dernière intervention
7 novembre 2004
-
blurk
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
-
Bonjour,

voila je debute dans l'algorithmie et j'arrive pas a rajouter une fonction sur un programme precedent je vous copie le programme :

int main (int argc, char*argv[])
{
lecture_ouvrir () ;

char **tab = malloc(1 * sizeof(char*));
int nb = 0;
int nb_mot = 0;
char *liremot();
char *mt = malloc(1 * sizeof(char));

while ((mot = liremot()) != NULL)
{
char *liremot();
if (*mot != '.' &&
*mot != ',' &&
*mot != ':' &&
*mot != ';' &&
*mot != ' ' )
{
mt[nb] = *mot;
mt = realloc(mt, (nb + 1) * sizeof(char));
nb++;
}
else

if (nb > 0)
{
mt[nb] = '\0';
tab[nb_mot] = mt;
nb_mot++;

mt = malloc(1 * sizeof(int));
tab = realloc(tab, (nb_mot + 1) * sizeof(int*));
nb = 0;

}
voila ca c le principal en gras je vous ai mis ce que j dois rajouter mais kan j'execute le programme il me dit k'il y a une erreur

si quelqu'un pouvai me repondre ca serait sympa

et desole si c un peu confus comme explication

1 réponse

Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
bonjour,
en c, on ne déclare pas un protoype dans une fonction,
quel que soit le language on ne déclare pas de prototype dans une boucle.
La fonction liremot() n'est pas correctement déclarée (2X et au mauvais endroit),
son implémentation (le code qu'elle doit contenir) est absente,
et non seulement elle n'est pas correctement déclarée
(char *liremot()), mais elle n'est pas appelée (liremot()).
Le mieux, pout toi, c'est d'acheter un bouquin du style
"bien débuter en C" pour que tu puisse faire la différence entre :
le prototype d'une fonction,
le corps d'une fonction,
comment on appelle une fonction.
ensuite, au sujet de malloc(), realloc() et free
il faut bien connaitre l'allocation mémoire en C, et pour cela il faut maitriser les pointeurs. Tu as du boulot. bon courage
cordialement
¤