get string!! - C++ - Programmation
Marsh Posté le 12-05-2002 à 23:06:46
comme ceci:
void main(void) {
char *chaine = (char *) malloc (100);
gets(chaine);
free (chaine);
}
[jfdsdjhfuetppo]--Message édité par Harkonnen le 12-05-2002 à 23:07:46--[/jfdsdjhfuetppo]
Marsh Posté le 12-05-2002 à 23:12:25
Harkonnen a écrit a écrit : comme ceci: void main(void) { char *chaine = (char *) malloc (100); gets(chaine); free (chaine); } |
le malloc(100) limite ma saisie de chaine à 100 caractères(non)??
si je veux faire de l'alocation dynamique (en gros je ne veux pas ke l'utilisateur soit limité à la saisie de la chaine!!
Marsh Posté le 12-05-2002 à 23:17:07
Ben utilise fgetc et stocke les caractères dans une liste de blocs mémoire alloués dynamiquement.
Marsh Posté le 12-05-2002 à 23:36:46
Verdoux a écrit a écrit : Ben utilise fgetc et stocke les caractères dans une liste de blocs mémoire alloués dynamiquement. |
Je n'aurais pas dit mieux !
Marsh Posté le 12-05-2002 à 23:38:09
GuillaumeH a écrit a écrit : le malloc(100) limite ma saisie de chaine à 100 caractères(non)?? |
J'ai juste repris ton exemple ou tu déclarais un tableau de 100 caractères...
Marsh Posté le 12-05-2002 à 23:38:34
Harkonnen a écrit a écrit : Je n'aurais pas dit mieux ! |
Mais va-t-il y comprendre quelque chose ?
Marsh Posté le 12-05-2002 à 23:41:19
Verdoux a écrit a écrit : Mais va-t-il y comprendre quelque chose ? |
Ca va être la surprise....
Marsh Posté le 13-05-2002 à 07:23:41
Harkonnen a écrit a écrit : Ca va être la surprise.... |
ta raison...j'y comprends pas grang chose!!!
Marsh Posté le 13-05-2002 à 10:07:55
Bon je vais t'aider un peu...
Tu alloues d'abord un bloc de mémoire d'un octet via malloc().
Tu lis un caractère via fgetc() (ou getchar() si tu utilises stdin comme périph d'entrée), et tu stockes ce caractère dans ton espace précédemment alloué.
Puis tu continues à lire des caractères. A chaque fois qu'un caractère est lu, tu le stockes dans ton espace, que tu auras pris soin d'agrandir d'un octet via la fonction realloc().
A toi de jouer, je t'ai tout dit.
Marsh Posté le 13-05-2002 à 19:12:41
Harkonnen a écrit a écrit : Bon je vais t'aider un peu... Tu alloues d'abord un bloc de mémoire d'un octet via malloc(). Tu lis un caractère via fgetc() (ou getchar() si tu utilises stdin comme périph d'entrée), et tu stockes ce caractère dans ton espace précédemment alloué. Puis tu continues à lire des caractères. A chaque fois qu'un caractère est lu, tu le stockes dans ton espace, que tu auras pris soin d'agrandir d'un octet via la fonction realloc(). A toi de jouer, je t'ai tout dit. |
merci bcp je teste!!
Marsh Posté le 12-05-2002 à 23:00:10
comment utiliser la fonction "gets" avec un "char*"!!!!!!
en allocation static c'est :
void main()
{
char chaine[100];
gets(chaine);
}
et ça marche..Mais avec un char*??
char* chaine;
gets(????);
ned help plz!!
cya
---------------
GUILINUX-HANDOVER