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 !