Probleme pour rajouter une fonction

Fermé
cccc14 Messages postés 1 Date d'inscription dimanche 7 novembre 2004 Statut Membre Dernière intervention 7 novembre 2004 - 7 nov. 2004 à 15:02
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 7 nov. 2004 à 16:26
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

blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
7 nov. 2004 à 16:26
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
¤
0