Probleme utilisation malloc

Signaler
Messages postés
23
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
24 août 2008
-
Messages postés
23
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
24 août 2008
-
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.


Merci par avance de vos réponses.

4 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
17
  char *mem;
  mem=malloc(1000 * sizeof (char)); <== allocation de 1000 char.
Messages postés
23
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
24 août 2008

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 .
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
17
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 .
Messages postés
23
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
24 août 2008

d'accor je saisie la difference merci beaucoup