Speichers) eine 0 geschrieben. Richtig wäre also
char buf[sizeof(long)+1]; sprintf(buf, "%l", lo);
Nein.
==== #include
#include int main(void) { char buf[1024]; long lo = LONG_MAX; sprintf(buf, "%li", lo); printf("%s, %i, %i\n", buf, strlen(buf), sizeof(long)); return 0; } ==== $ ./a.out 2147483647, 10, 4
Merkt ihr was?
Natürlich. Kommt davon, wenn man im Fehler einen Fehler sieht und den eigentlichen Fehler dann übersieht ;)
Hmm, das macht den Unterschied von einem C und C++ Programmierer aus :-) Gut zu wissen. (2er/10er/Hex System und deren Platzverbrauch in der Darstellung) Lothar ---- My home: www.lollisoft.de ----------------------------- Lothar Behrens | Independent: lothar.behrens@gmx.de Rosmarinstr 3 | My public project: 40235 Düsseldorf | http://sourceforge.net/projects/lbdmf | -> Need comments, please visit :-)