Déclaration dynamique
Résolu
mektout khaled
Messages postés
21
Statut
Membre
-
mektout khaled Messages postés 21 Statut Membre -
mektout khaled Messages postés 21 Statut Membre -
bonjour tout le monde
j'ai un problème j'arrive pas a compiler un programme dans dev-c++ il me signale qu'il y a une erreur au niveau de la déclaration dynamique , voici le programme:
#include<stdio.h>
#include<conio.h>
#alloc<alloc.h>
main()
{
char *m;int i,n;
i=0;
printf("donner la taille a réserver");
printf("\n");
scanf("%d",&n);
getchar();
m=(char*)malloc(n*size of(char));
printf("donner une phrase qui ne dépasse pas les n lettre");
printf("\n");
gets(m);
while (m[i]!='\0') i++ ;
printf("sa longueur est %d",i);
getch();
}
SVP
SVP
SVP
aider moi
merci infiniment
j'ai un problème j'arrive pas a compiler un programme dans dev-c++ il me signale qu'il y a une erreur au niveau de la déclaration dynamique , voici le programme:
#include<stdio.h>
#include<conio.h>
#alloc<alloc.h>
main()
{
char *m;int i,n;
i=0;
printf("donner la taille a réserver");
printf("\n");
scanf("%d",&n);
getchar();
m=(char*)malloc(n*size of(char));
printf("donner une phrase qui ne dépasse pas les n lettre");
printf("\n");
gets(m);
while (m[i]!='\0') i++ ;
printf("sa longueur est %d",i);
getch();
}
SVP
SVP
SVP
aider moi
merci infiniment
7 réponses
-
Bonjour,
Est-ce que tu pourrais détailler l'erreur s'il te plaît ?
D'ailleurs tu n'est pas obligé de faire un cast sur le retour de malloc.
Cdlt.
-
Bonjour
Je n'ai pas regardé en détail, mais déjà il faut écrire sizeof (sans espace) et non pas size of -
Bonjour,
Quelques compléments :
D'ailleurs malloc.h n'est pas standard. Il faut inclure stdlib.h
Le prototype de la fonction main() n'est pas main(), mais int main(void)
m=(char*)malloc(n*size of(char));
Cast (char*) totalement superflu . Ce n'est pas size of, mais sizeof (char) (qui vaut 1).
gets(m);
gets() est obsolète. On utilise plutôt fgets() à la place.
Et enfin la fonction main() renvoie 0 quand tout s'est bien passé. Donc : return 0; en fin de fonction.
Après, pour améliorer ton code, tu pourras contrôler le retour des fonctions "critiques".
Cdlt, -
oui j'ai essayé sans espace mais ça ne marche toujours pas !!!!!
il n'y a pas une autre solution ???? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
le problème c'est que le compilateur me signale qu'il y a une erreur dans la ligne suivante:
m=(char*)malloc(n*sizeof(char));
il me l'affiche en rouge !!!!
il écrit dans les messages d'erreurs :
invalid preprocessing directive #alloc
'malloc' undeclared(first use in this function)
svp aider moi
merci d'avance -
c'est bon j'ai trouver la solution !!!!!!!!!!
l'erreur était dans la déclaration des bibliothèques car je n'ai pas déclarer la bibliothèque #include<stdlib.h> ou je peut déclarer seulement #include<malloc.h>
merciiiiiiiiiiiiiiiiiiiiiiii -
merci beaucoup fidy pour ces informations ça me serra utile