cs_miki42
Messages postés23Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention24 août 2008
-
10 juil. 2008 à 13:19
cs_miki42
Messages postés23Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention24 août 2008
-
10 juil. 2008 à 14:24
Bonjour a tous j'apprend au fur et a meusure le language c et je nut sur l'utilisation de malloc en faite cette fonction me prait tres pratique pour les tableau afin de gerer automatiquement la memoire mais je n'arrive pa a l'utiliser lorsque je declare un buffer :
char *mem[1000];
mem=malloc(sizeof (char));
if(mem==NULL)
{
exit (0);
}
printf("entrer votre nom\n");
scanf("%s",&mem);
printf("votre nom est %s \n",mem);
free(mem);
system("PAUSE");
A la compilation j'obtient un "incompatible type assignement" aurai-je mal comprit le but de cette fonction, peut on s'en servir pour controler automatiquement la taille d'un buffer ( un buffer et bien un tableau non ?).
si vous pouviez me donner un exemple simple de malloc avec un buffer ce serai sympa car je suis debutant je le repete merci.
cs_miki42
Messages postés23Date d'inscriptionvendredi 16 mai 2008StatutMembreDernière intervention24 août 2008 10 juil. 2008 à 13:55
merci d'avoir repondu en effet le code passe comme ça mais en faite je pensait q'avec la fonction malloc on pouvai controler la tailler passe au buffer pour par exemple eviter les stack overflow si l'utilisateur rentre une chaine trop longue je sais qu'il y a des fonctions proteger tel que fgets mais en voyant le role de la fonction malloc dans les man page j'avai cru comprendre que cette fonction pouvait aussi palier au probleme de debordement de buffer je me trompe .
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 10 juil. 2008 à 14:03
Avec un malloc tu n'alloues qu'une certaine taille de mémoire, la seul différence avec une déclaration du type "char t[1000];" c'est quand avec le malloc tu peux allouer dynamiquement la taille de la mémoire .