illwieckz :
Erf ton code de trois ligne là....
essaie de le compiler tout seul....
Excusez moi mais j'ai vraiment ce code à la va vite sans reflechir; je voulais exprimer plutot ce bout de code :
char *buf = malloc(10 * sizeof(char)); short x = 48 buf[0] = x;
Lionel Debroux :
Horreur. Je sais bien que certains profs le font, mais franchement, compiler sans optimisation et compiler sans warnings (surtout du C !)...
Heuh hum. Reparons vite cette betise alors: a part l' option -Wall que vaut-il mieux ajouter comme option à la compilation ?
Link :
Nanar_duf comme l'a dit Ykizar, il n'y a pas 48 = 0 mais 48 = '0': le caractère "zéro" (et aussi 0 = '\0' : le caractère nul, qui termine une chaîne)
Edit: au fait, dans ta boucle, il y a deux fois i++ : c'est normal que le buffer soit rempli un caratère sur 2![]()
PS: C'est quoi, le caractère -35 ?(ou plutot 65501, je suppose...)
Merci pour l' histoire de traduction entre ASCII et short, je pense avoir compris.
Hum, ne disons rien pour les 2 fois i++;
Et en fait le -35 = 13 (code de la touche enter) - 48.
Hum et sinon, à la fin, l' algorithme:
short size = 1 * sizeof(char);
short k = 0;
char *buf = malloc(size);
memset(buf, ' ', size);
short i = 0;
while(k != 13 && k != 264)
{
k = ngetchx();
if(k != 13 && k != 264)
{
buf[i] = k;
printf("%c", k);
size = size + sizeof(char);
buf = realloc(buf, size);
i++;
}
}
buf[size] = '\0';
Merci beaucoup !

(ou plutot 65501, je suppose...)